无论我如何尝试让 OpenCL 工作(sgminer、cgminer、c 编程示例,clinfo
)
仅当我以 root 身份运行时才会获得结果。
当我clinfo
以非 root 身份运行时,我得到:
terminate called after throwing an instance of 'cl::Error'
what(): clGetPlatformIDs
Aborted (core dumped)
我正在使用 AMD opencl 实现,并且正确的 ICD 文件确实存在于 /etc/OpenCL/vendors 下。我更改了各种文件的权限,但没有成功。
我怎样才能让它在没有 root 权限的情况下工作
答案1
确保您的用户已添加到该video
组:
sudo adduser $USER video
答案2
按照本指南中的第 9-11 步操作回答
- 可选:为所需的系统安装平台创建符号链接:$ ln -s /etc/OpenCL/vendors/nvidia.icd /local/install/path/etc/vendors/nvidia.icd
- 导出 OPENCL_VENDOR_PATH=/本地/安装/路径/etc/vendors
- 导出 LD_LIBRARY_PATH=/本地/安装/路径/lib/x86_64:$LD_LIBRARY_PATH
答案3
Ubuntu 14.04
相同的错误消息。GPU 无法识别。
症状-没有文件/etc/OpenCL/vendors
通过创建文件
sudo gedit /etc/OpenCL/vendors/amdocl64.icd
输入/粘贴libamdocl64.so
节省
sudo gedit /etc/OpenCL/vendors/amdocl32.icd
输入/粘贴libamdocl32.so
节省
sudo gedit /etc/OpenCL/vendors/inteocl.icd
输入/粘贴libintelocl.so
节省
sudo gedit /etc/OpenCL/vendors/nvidia.icd
输入/粘贴libcuda.so
节省
这对我来说很管用。我还做了很多其他事情 - symlinc 和 xhost - 但最终它们并没有解决问题。