我正在尝试在Linux上安装OpenCL(AMD),但我最后一步(安装ICD)
似乎ICD HAS 安装在/ etc / OpenCL / vendor上,但我没有root权限访问计算机。
有没有办法让OpenCL在没有安装ICD的情况下工作? (或者可以通过环境变量为ICD文件添加搜索路径?)
当ICD文件路径被硬编码时,对我们这样的人来说似乎非常不方便。
答案 0 :(得分:4)
将ICD文件放在/ some / path / icd中,然后像这样导出路径:
export OPENCL_VENDOR_PATH=/some/path/icd
它至少在以前的版本中使用过。如果他们改变它我会感到惊讶。
答案 1 :(得分:2)
以下是如何在没有管理员权限的情况下执行AMD OpenCL SDK的“用户”或“本地”安装的草图。步骤9还提供了一种使用AMD OpenCL平台以及系统安装的选定平台的方法。
安装目录/local/install/path
和当前的SDK版本只需要修改以适应。
下载AMD OpenCL SDK 64位。
$ tar -xvzf AMD-APP-SDK-v2.8-RC-lnx64.tgz
$ tar -xvzf icd-registration.tgz
$ cd AMD-APP-SDK-v2.8-RC-lnx64
$ mkdir /local/install/path
$ cp -r lib /local/install/path
$ cp -r include /local/install/path
$ cp -r ../etc /local/install/path
可选:为所需的系统安装平台制作符号链接:
$ ln -s /etc/OpenCL/vendors/nvidia.icd /local/install/path/etc/vendors/nvidia.icd
$ export OPENCL_VENDOR_PATH=/local/install/path/etc/vendors
$ export LD_LIBRARY_PATH=/local/install/path/lib/x86_64:$LD_LIBRARY_PATH
$ cc -I/local/install/path/include -L/local/install/path/lib/x86_64 -lOpenCL demo.c
$ ./a.out
答案 2 :(得分:1)
只是对此的更新,因为我突然发现自己有同样的问题(再次)。我不得不禁用那些显然在非root运行下崩溃的有缺陷的Mesa icd。令人沮丧的是,在列出每个平台时,API处理错误更多是一个问题,而不是带有权限或clinfo的错误。确保禁用每个平台icd以隔离哪个有问题。希望这能帮助别人。