OpenCL 仅以 root 身份运行

OpenCL 仅以 root 身份运行

无论我如何尝试让 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 步操作回答

  1. 可选:为所需的系统安装平台创建符号链接:$ ln -s /etc/OpenCL/vendors/nvidia.icd /local/install/path/etc/vendors/nvidia.icd
  2. 导出 OPENCL_VENDOR_PATH=/本地/安装/路径/etc/vendors
  3. 导出 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 - 但最终它们并没有解决问题。

相关内容