如何从 AMD 获得对 navi10 GPU 的 OpenCL 支持?

如何从 AMD 获得对 navi10 GPU 的 OpenCL 支持?

对于我的AMD Radeon RX 5700XT我试过amdgpu-pro现代(内核 5.3)上的驱动程序(v19.50)安装Ubuntu 18.04.3正如驱动程序声称它受支持,但编译失败并出现 C++ 错误。在5.05.5.2内核上尝试了相同的操作,结果相同(5.5.2但在内核上出现了不同的错误:)<drm/drmP.h>: No such file or directory

目前我正在kernel 5.5.2安装mesa 19.3clinfo打印了很多令人满意的信息,看起来都很酷,但是中间却有一条很小的线:

致命错误:无法打开文件“/usr/lib/clc/gfx1010-amdgcn-mesa-mesa3d.bc”:没有此文件或目录

这导致内核编译失败(出现相同的错误)。

有人能够在Ubuntu 的任何发行版上运行 navi10 GPU OpenCL 吗?

答案1

所以,我无法做到图形处理器/amdgpu-pro要安装的驱动程序Ubuntu 18.04全部排列:

内核5.0,,,,5.25.35.45.5

gcc 7,,89每个版本都给出不同的错误,我修复后却出现其他错误)

图形处理器amdgpu-pro版本19.3019.50

但是我做过设法得到OpenCL工作;)我最终成功了:

  • 新鲜的Ubuntu 18.04.3 安装
  • 更新内核至版本5.4呜呜(下一个 (台面) 步骤在内核版本 5.5 上失败)
  • 重启
  • 安装 台面 19.3

    sudo 添加 apt 存储库 ppa:kisak/kisak-mesa

    sudo apt-get dist-upgrade

    sudo apt-get 更新

  • 重启
  • 安装OpenCL

    sudo apt 安装 opencl-headers ocl-icd-libopencl1 clinfo

    sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so

PS 探索和学习amdgpu-pro在尝试修复编译错误时,我发现 AMD 开发人员直接在台面开源驱动程序和 Linux 内核——在 GPU 发布前几个月。因此,为了稍微证明一下 AMD 开发人员的合理性,开发重点就在这里——而不是amdgpu-pro

答案2

很高兴您成功了,我在尝试寻找解决方案时在其他几个论坛上看到了您的询问。我设法找到了一个可行的解决方案。

我也有 RX 5700XT,并且正在运行Pop!_OS 19.105.5.5-050505-generic对于我的 PPA,我有 cappelikan、kisak 和 oibaf;我怀疑即使没有它们,这种情况也可以重现,因为我主要为通用驱动程序(OpenCL 除外)使用了 [其中几个]。

我下载了 amdgpu-pro 驱动程序 19.50,并安装了以下内容(按顺序):

Setting up amdgpu-core (19.50-967956) ...
Setting up amdgpu-pro-core (19.50-967956) ...
Setting up opencl-amdgpu-pro-comgr (19.50-967956) ...
Setting up opencl-amdgpu-pro-icd (19.50-967956) ...
Setting up libdrm2-amdgpu:amd64 (1:2.4.99-967956) ...
Setting up libdrm-amdgpu-amdgpu1:amd64 (1:2.4.99-967956) ...
Setting up libopencl1-amdgpu-pro:amd64 (19.50-967956) ...
Setting up clinfo-amdgpu-pro (19.50-967956) ...

为了测试 OpenCL 是否有效,我运行darktable-cltest并在加载 opencl 内核时寻找成功的输出。

所有这些中有一个很大的“但是”:我无法成功启动(黑屏,闪烁的线条)。我必须按 CTRL+ALT+F2 并./amdgpu-pro-install --uninstall从 amdgpu-pro 驱动程序目录运行,然后重复上述相同的步骤。到目前为止,我已经使用 5.3 和 5.5 内核对此进行了测试。

答案3

为了完整起见,这里应该补充一点最终于2024年1月更新。

使用 LLVM MR 将对较新 Radeon 硬件的支持添加到 libclc#78884将在LLVM 18. 查看此主题这里更多细节。

所以现在应该存在一些clover OpenCL 也支持最新的 RDNA 级硬件。但应该注意的是,这种情况并没有经过真正的测试,而且 clover OpenCL API 总体上状况并不好。可能存在一些问题,尤其是较新的 LLVM 功能,例如“新”LLVM 通道管理器。

顺便说一句。很长一段时间以来,GCN5 硬件不再受到支持平均ROC。但至少应该支持基于 RDNA 的 GPU。

相关内容