Difference between revisions of "GPU Driver Internals"

From Open-IOV
Jump to navigation Jump to search
Line 10: Line 10:


===== vGuC =====
===== vGuC =====
vGuC is a command submission interface used to process commands to the Intel [https://open-iov.org/index.php/GPU_Firmware#GuC Graphics Microcontroller (GuC)].


==== Between-VM Scheduling ====
==== Between-VM Scheduling ====

Revision as of 20:19, 9 December 2022

This page will detail the internals of various GPU drivers for use with I/O Virtualization.

i915

Scheduling

In-VM Scheduling

vExeclist
vGuC

vGuC is a command submission interface used to process commands to the Intel Graphics Microcontroller (GuC).

Between-VM Scheduling

Memory Management

i915 Clients
GTT (Graphics Translation Table)

GPU Memory on-device is a part of a GTT or Graphics Translation Table. This table stores information globally for all graphics processes within the system. Some processes access the GTT such as DRI while other's receive a Per-Process Graphics Translation Table (PPGTT) buffer based on their i915 Client ID.

PPGTT (Per Process Graphics Translation Table)
Aliasing PPGTT
Real PPGTT

OpenRM

Scheduling

In-VM Scheduling

gpu-mgr

Between-VM Scheduling

nvidia.ko

Memory Management

RM Clients

amdgpu

Citations (Talks and Reading Material)

  1. Intel Graphics Programmer's Reference Manuals (PRM)
  2. i915: Hardware Contexts (and some bits about batchbuffers)
  3. i915: The Global GTT Part 1
  4. i915: Aliasing PPGTT Part 2
  5. i915: True PPGTT Part 3
  6. i915: Future PPGTT Part 4 (Dynamic page table allocations, 64 bit address space, GPU "mirroring", and yeah, something about relocs too)
  7. i915: Security of the Intel Graphics Stack - Part 1 - Introduction
  8. i915: Security of the Intel Graphics Stack - Part 2 - FW <-> GuC