我的笔记本电脑中有两个 GPU:集成 Radeon GPU 和独立 NVIDIA GPU,如 inxi 所示:
$ inxi -G
Graphics:
Device-1: NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q] driver: nvidia
v: 535.86.05
Device-2: AMD Cezanne [Radeon Vega Series / Radeon Mobile Series]
driver: amdgpu v: kernel
Device-3: Quanta HD User Facing type: USB driver: uvcvideo
Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.8 driver: X:
loaded: amdgpu,nvidia unloaded: fbdev,modesetting,nouveau,radeon,vesa
dri: radeonsi gpu: amdgpu resolution: 1920x1080~144Hz
API: OpenGL v: 4.6 Mesa 23.0.4-0ubuntu1~23.04.1 renderer: AMD Radeon
Graphics (renoir LLVM 15.0.7 DRM 3.49 6.2.0-32-generic)
但如果我要求clinfo
列出 OpenCL 驱动程序,它只会找到一个适用于 NVIDIA 的驱动程序,而不会找到适用于 Radeon 的驱动程序。
$ clinfo -l
Platform #0: NVIDIA CUDA
`-- Device #0: NVIDIA GeForce RTX 3060 Laptop GPU
我需要做什么才能使 Radeon 可用于 OpenCL?
我运行的是 Ubuntu 23.04 和 X11。
数字版权管理信息:
$ drm_info | grep Driver
├───Driver: amdgpu (AMD GPU) version 3.49.0 (20150101)
├───Driver: nvidia-drm (NVIDIA DRM driver) version 0.0.0 (20160202)
之后
$ sudo apt install mesa-opencl-icd
我现在看到了更多的 OpenCL 平台。不幸的是,使用 radeon opencl 平台会产生错误。
因此,尽管现在有适用于 radeon GPU 的 ICD,但它存在缺陷并且无法使用。