4

我正在尝试在 linux 上安装 OpenCL(AMD),但我被困在最后一步(安装 ICD)

似乎 ICD必须安装在 /etc/OpenCL/vendor 中,但我没有对计算机的 root 访问权限。

有什么方法可以在不安装 ICD 的情况下使 OpenCL 工作?(或者可能通过环境变量添加 ICD 文件的搜索路径?)

当 ICD 文件路径被硬编码时,对于像我们这样的人来说似乎真的很不方便。

4

3 回答 3

4

将 ICD 文件放在 /some/path/icd 中,然后像这样导出路径:

export OPENCL_VENDOR_PATH=/some/path/icd

它至少在以前的版本中可以工作。如果他们改变它,我会感到惊讶。

于 2012-05-27T21:53:27.813 回答
2

以下是如何在没有管理员权限的情况下进行 AMD OpenCL SDK 的“用户”或“本地”安装的草图。步骤 9 还提供了一种使用 AMD OpenCL 平台以及在系统范围内安装的选定平台的方法。

/local/install/path只需修改安装目录和当前 SDK 版本以适应即可。

  1. 下载 AMD OpenCL SDK 64 位。

  2. $ tar -xvzf AMD-APP-SDK-v2.8-RC-lnx64.tgz

  3. $ tar -xvzf icd-registration.tgz

  4. $ cd AMD-APP-SDK-v2.8-RC-lnx64

  5. $ mkdir /local/install/path

  6. $ cp -r lib /local/install/path

  7. $ cp -r include /local/install/path

  8. $ cp -r ../etc /local/install/path

  9. 可选:为所需的系统安装平台创建符号链接: $ ln -s /etc/OpenCL/vendors/nvidia.icd /local/install/path/etc/vendors/nvidia.icd

  10. $ export OPENCL_VENDOR_PATH=/local/install/path/etc/vendors

  11. $ export LD_LIBRARY_PATH=/local/install/path/lib/x86_64:$LD_LIBRARY_PATH

  12. $ cc -I/local/install/path/include -L/local/install/path/lib/x86_64 -lOpenCL demo.c

  13. $ ./a.out

于 2014-01-07T01:19:46.853 回答
1

只是对此的更新,因为我突然发现自己(再次)遇到了同样的问题。我不得不禁用错误的 Mesa icd,它显然在非 root 运行下崩溃。令人沮丧的是,在列出每个平台时更多的是 API 处理错误的问题,而不是权限或 clinfo 的错误。确保禁用每个平台 icd 以隔离哪个平台有问题。希望这对以后的人有所帮助。

于 2016-12-07T18:52:44.303 回答