我的主要目标是让 Blender 2.82a 能够检测到我系统的 GPU,然后用作 OpenCL 计算来加快渲染时间。
问题似乎是我的 Ubuntu 发行版本太高,因为我有 19.10 (with kernel 5.5.11-050511-lowlatency
) + AMDGPU-PRO的 OpenCL 组件只能正式支持 Ubuntu 18.04,ROCm也是如此。
我确实尝试通过仅针对 OpenCL 组件的安装脚本(通过--headless
)安装 AMDGPU-PRO 的 OpenCL,甚至手动安装一个包;都没有成功。如前所述,不支持显示在错误消息中。我想用 ROCm 再试一次,但它的包似乎很大。由于我的发行版没有可用的预构建包,我想它也会失败。
那么,如果回到 18.04 是为我的 GPU 安装 OpenCL 驱动程序(确切地说是来自 Ryzen 3 2200g 的 APU,我没有独立的 GPU)以及已经安装的开源 OpenGL/Vulkan 驱动程序的最后手段,我的选择是什么?梅萨?
编辑:
与此同时,我尽我所能通过libclang-common-10-dev libclc-amdgcn libclc-dev libclc-r600 libllvm10 mesa-opencl-icd
包安装 OpenCL 1.1 来测试。它通过 显示有意义的信息clinfo
。但是 Blender 仍然没有检测到任何 GPU 作为 OpenCL 设备。
更新 1:
我用 ROCm 进行了测试。有了来自这里和这里的良好报告,很明显 Ubuntu 发行版 19.10 应该不是问题,只需要一个合适的内核版本。因此,我将内核版本恢复为 5.3.x(特别是使用 5.3.18 通用版本,因为 5.3 被声明为 ROCm 的受支持版本,并且来自报告)。
请注意,我按照第二个报告链接中的说明最低限度地安装软件包,因为 ROCm 软件包很大,然后按照其 github 页面的 README.md 中的较少安装说明进行操作。虽然我在上eoan
并且包裹来自xenial
,但我现在确实承担了风险。都过去了。我可以通过验证clinfo
或/opt/rocm-3.1.0/opencl/bin/x86_64/clinfo
两者都给出有意义的结果,即我现在拥有 OpenCL 2.1但没有找到设备!!!。
结果来自clinfo
Number of platforms 1
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.1 AMD-APP (3084.0)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Host timer resolution 1ns
Platform Extensions function suffix AMD
Platform Name AMD Accelerated Parallel Processing
Number of devices 0
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) AMD Accelerated Parallel Processing
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)
clCreateContext(NULL, ...) [default] No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No devices found in platform
ICD loader properties
ICD loader Name OpenCL ICD Loader
ICD loader Vendor OCL Icd free software
ICD loader Version 2.2.11
ICD loader Profile OpenCL 2.1
结果来自/opt/rocm-3.1.0/opencl/bin/x86_64/clinfo
Number of platforms: 1
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 2.1 AMD-APP (3084.0)
Platform Name: AMD Accelerated Parallel Processing
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Name: AMD Accelerated Parallel Processing
ERROR: clGetDeviceIDs(-1)
除了使用 Blender 进行测试之外,仍然没有检测到 GPU,这就是现在我遇到的设备未找到问题。
我正在进一步调查...
更新 2:
虽然性能不好,但问题解决了。请参阅下面我对这个问题的回答。