GPU Software Bill Of Materials (SBOM)
Jump to navigation
Jump to search
This page will keep a running list of components used to achieve GPU Virtualization.
Vendor | Component | Description | Version | OSS or Blob | Vendor Docs | Release Date | Interfaces / APIs | Notes |
---|---|---|---|---|---|---|---|---|
Arc Compute | gvm-cli | Daemon | 1.0 | OSS | docs.linux-gvm.org/gvm-user | 2023.01.06 | CLI, IOCTL, RMAPI, Mediated Core | Allocates GPU resources for use with virtualization. Registers devices and mdev callbacks with the Mediated Core. |
gvm-mgr | Daemon | 2023.01.06 | IOCTL, RMAPI, vRPC, pRPC, PCI BAR, Mediated Core | Schedules IO to and from the guest GPU driver, handles BAR-quirks (trap and emulate of some or all guest driver IO depending on availability of hardware virtualization assistance). | ||||
gvm-guest | Daemon | 0.1.0 | OSS | docs.linux-gvm.org/gvm-guest | 2023.02.08 | VirtIO-Serial, CLI | Handles IO to and from guests and the host using VirtIO-Serial. | |
Microsoft | Indirect Display Driver (IDD) | Driver | OSS | Indirect Display Driver Overview | UMDF, KMDF | The Indirect Display Driver (IDD) enables GPUs to render graphics at arbitrary resolutions without a physical display connected on Windows OS systems. | ||
RedHat | vfio_pci | Driver | 6.2-rc1 | OSS | RedHat, kernel.org | 2022.12.15 | irqfd, ioeventfd, IOCTL | Reference VFIO Stub driver used for discrete assignment of IO, and assignment of some SR-IOV-backed vGPU devices into virtual machines. This driver is commonly replaced with a vendor built VFIO interface with differing memory management and/or page pinning mechanisms which are specific to the vGPU software internals. |
Intel | i915 SR-IOV | Driver | 5.15 | OSS | Intel's open source GPU driver for GuC-equipped graphics accelerators. | |||
GuC μOS | Firmware | Blob | IOMMU Interrupts, Power Management Interrupts, GTT | Handles scheduling, and power management. | ||||
HuC | Firmware | Blob | GTT | Handles video encoding/decoding. | ||||
Display Virtualization for Windows OS | Driver | 791 | OSS | github.com/intel/Display-Virtualization-for-Windows-OS/blob/main/Readme.txt | udmabuf, UMDF, KMDF | Intel's 'Display Virtualization for Windows OS' provides a virtual pixel surface used for hardware graphics rendering using Microsoft's open source 'Indirect Display Driver (IDD)'. Display virtualization for Windows OS makes use of display memory sharing primitives provided in-driver by the i915 host. | ||
Nvidia | OpenRM | Driver | 525.85.12 | OSS | github.com/NVIDIA/open-gpu-kernel-modules/blob/main/README.md | 2023.01.31 | Nvidia's open source GPU driver for GSP-equipped graphics accelerators. | |
GSP RM (uproc) | Firmware | Blob | 2023.01.31 | RPC | Embedded firmware based on LibOS containing the RM Core. | |||
Falcon/NvRISC (uproc) | Firmware | Blob | FBIF (Frame Buffer Interface) / GMMU | Embedded firmware which handles many aspects of the device including configuring the GPU's GMMU controller. | ||||
nvidia-vgpud | Daemon | v15.1 | Blob | docs.nvidia.com/grid | 2023.01.xx | Systemd, Mediated Core | Configures the the nvidia-vgpu-mgr process. | |
nvidia-vgpu-mgr | Daemon | Blob | 2023.01.xx | vmiop, IOCTL, RMAPI, vRPC, pRPC, Mediated Core | Handles IO to and from guest RM, host RM, and hardware. | |||
libnvidiavgpu.so | Library | Blob | 2023.01.xx | vmiop, RMAPI, Mediated Core | Handles IO to and from guest RM, host RM, and hardware. Contains circular dependancies with nvidia-vgpu-mgr. | |||
nvidia_vgpu_vfio | Driver | Blob | 2023.01.xx | Type 1 IOMMU, irqfd, ioeventfd, IOCTL, Mediated Core | Handles incremental memory mapping (non-page pinning per the standard vfio-pci driver). |
More Information
- Nvidia RISC-V Story
- linux-gvm.org
- Intel Graphics Programmer's Reference Manuals (PRM)
- i915: Hardware Contexts (and some bits about batchbuffers)
- i915: The Global GTT Part 1
- i915: Aliasing PPGTT Part 2
- i915: True PPGTT Part 3
- i915: Future PPGTT Part 4 (Dynamic page table allocations, 64 bit address space, GPU "mirroring", and yeah, something about relocs too)
- i915: Security of the Intel Graphics Stack - Part 1 - Introduction
- i915: Security of the Intel Graphics Stack - Part 2 - FW <-> GuC
- i915: An Introduction to Intel GVT-g (with new architecture)