@@ -10,6 +10,8 @@ Table of Contents
10
10
* [ Kernel driver] ( #kernel-driver )
11
11
* [ Intel DKMS packages] ( #intel-dkms-packages )
12
12
* [ Upstream kernel] ( #upstream-kernel )
13
+ * [ GPU Version] ( #gpu-version )
14
+ * [ GPU Firmware] ( #gpu-firmware )
13
15
* [ User-space drivers] ( #user-space-drivers )
14
16
* [ Drivers for older (integrated) GPUs] ( #drivers-for-older-integrated-gpus )
15
17
* [ Pre-built Images] ( #pre-built-images )
@@ -74,24 +76,31 @@ $ grep i915 /sys/class/drm/card?/device/uevent
74
76
75
77
#### Drivers for discrete GPUs
76
78
79
+ > ** Note** : Kernel (on host) and user-space drivers (in containers)
80
+ > should be installed from the same repository as there are some
81
+ > differences between DKMS and upstream GPU driver uAPI.
82
+
77
83
##### Kernel driver
78
84
79
85
###### Intel DKMS packages
80
86
81
- ` i915 ` GPU driver DKMS[ ^ dkms ] package is recommended until Intel
82
- discrete GPU support in upstream is complete. It can be installed
83
- from Intel package repositories for a subset of older kernel versions
84
- used in enterprise / LTS distributions:
87
+ ` i915 ` GPU driver DKMS[ ^ dkms ] package is recommended for Intel
88
+ discrete GPUs, until their support in upstream is complete. DKMS
89
+ package(s) can be installed from Intel package repositories for a
90
+ subset of older kernel versions used in enterprise / LTS
91
+ distributions:
85
92
https://dgpu-docs.intel.com/installation-guides/index.html
86
93
87
94
[ ^ dkms ] : [ intel-gpu-i915-backports] ( https://github.com/intel-gpu/intel-gpu-i915-backports ) .
88
95
89
96
###### Upstream kernel
90
97
91
- With upstream 6.x kernels, discrete GPU support needs to be enabled using
92
- kernel ` i915.force_probe=<PCI_ID> ` command line option until relevant kernel
93
- driver features have been completed also in upstream:
94
- https://www.kernel.org/doc/html/latest/gpu/rfc/index.html
98
+ Upstream Linux kernel 6.2 or newer is needed for Intel discrete GPU
99
+ support. For now, upstream kernel is still missing support for a few
100
+ of the features available in DKMS kernels (e.g. Level-Zero Sysman API
101
+ GPU error counters).
102
+
103
+ ##### GPU Version
95
104
96
105
PCI IDs for the Intel GPUs on given host can be listed with:
97
106
```
@@ -106,6 +115,8 @@ and server GPUs without display support, as "Display controller".)
106
115
Mesa "Iris" 3D driver header provides a mapping between GPU PCI IDs and their Intel brand names:
107
116
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/include/pci_ids/iris_pci_ids.h
108
117
118
+ ###### GPU Firmware
119
+
109
120
If your kernel build does not find the correct firmware version for
110
121
a given GPU from the host (see ` dmesg | grep i915 ` output), latest
111
122
firmware versions are available in upstream:
@@ -316,21 +327,22 @@ The GPU plugin functionality can be verified by deploying an [OpenCL image](../.
316
327
317
328
# # Issues with media workloads on multi-GPU setups
318
329
319
- Unlike with 3D & compute, and OneVPL media API, QSV (MediaSDK) & VA-API
320
- media APIs do not offer device discovery functionality for applications.
321
- There is nothing (e.g. environment variable) with which the default
322
- device could be overridden either.
330
+ OneVPL media API, 3D and compute APIs provide device discovery
331
+ functionality for applications and work fine in multi-GPU setups.
332
+ VA-API and legacy QSV (MediaSDK) media APIs do not, and do not
333
+ provide (e.g. environment variable) override for their _default_
334
+ device file.
323
335
324
- As result, most (all ? ) media applications using VA-API or QSV, fail to
325
- locate the correct GPU device file unless it is the first (" renderD128" )
326
- one, or device file name is explictly specified with an application option.
336
+ As result, media applications using VA-API or QSV, fail to locate the
337
+ correct GPU device file unless it is the first (" renderD128" ) one, or
338
+ device file name is explictly specified with an application option.
327
339
328
340
Kubernetes device plugins expose only requested number of device
329
341
files, and their naming matches host device file names (for several
330
342
reasons unrelated to media). Therefore, on multi-GPU hosts, the only
331
- GPU device file mapped to the media container can be some other one
332
- than " renderD128" , and media applications using VA-API or QSV need to
333
- be explicitly told which one to use.
343
+ GPU device file mapped to the media container can differ from
344
+ " renderD128" , and media applications using VA-API or QSV need to be
345
+ explicitly told which one to use.
334
346
335
347
These options differ from application to application. Relevant FFmpeg
336
348
options are documented here:
0 commit comments