我正在使用 Ubuntu 20.04.1 lts (amd64)。似乎 mesa 20.3 支持 opencl 1.2,因此注册了 kisak-mesa PPA 存储库,然后我尝试安装 mesa 20.3。
sudo add-apt-repository ppa: kisak / kisak-mesa
sudo apt update
sudo apt install mesa-opencl-icd
我按照上述做了。
clinfo
Number of platforms 3
Platform Name Portable Computing Language
Platform Vendor The pocl project
Platform Version OpenCL 1.2 pocl 1.4, None + Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd
Platform Extensions function suffix POCL
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.0 AMD-APP (3212.0)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback
Platform Extensions function suffix AMD
Platform Name Clover
Platform Vendor Mesa
Platform Version OpenCL 1.1 Mesa 20.3.3 --kisak-mesa PPA
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd
Platform Extensions function suffix MESA
如上显示,Platform Version OpenCL 1.1 Mesa 20.3.3 --kisak-mesa PPA 可以看到,Mesa 的opencl-icd内容没有发生改变。
有人知道如何更改 mesa-opencl-icd 的内容吗?
答案1
我发现了一个线,他们在那里说出了原因:
clover 仍然只宣传 OpenCL 1.1,因为 printf() 尚不受支持。
环境变量修改可以覆盖该问题:
CLOVER_PLATFORM_VERSION_OVERRIDE=1.2 CLOVER_DEVICE_VERSION_OVERRIDE=1.2 CLOVER_DEVICE_CLC_VERSION_OVERRIDE=1.2 clinfo
答案2
我遇到了 mesa-opencl-icd 不允许从 Ubuntu 20.04 升级到 22.04 的问题。对我来说,修复方法似乎很简单,只需运行:
sudo apt update
sudo apt install mesa-opencl-icd
(我跳过了 OP 的 PPA 行,并且 PPA 没有出现在我的 sources.list 中。)