OpenCL 仅以 root 身份运行

Zac*_*ham 5 opencl 14.10

无论我如何尝试让 OpenCL 工作(sgminer、cgminer、c 编程示例,clinfo

当我以 root 身份运行时,我只会得到一个结果。

当我clinfo不是以 root 身份运行时,我得到:

terminate called after throwing an instance of 'cl::Error'
what():  clGetPlatformIDs
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

我正在使用 AMD opencl 实现,并且 /etc/OpenCL/vendors 下确实存在正确的 ICD 文件。我更改了各种文件的权限但没有成功。

如何在没有 root 访问权限的情况下使其工作

小智 1

按照此答案的步骤 9-11 进行操作

  1. 可选:为所需的系统安装平台创建符号链接: $ ln -s /etc/OpenCL/vendors/nvidia.icd /local/install/path/etc/vendors/nvidia.icd
  2. 导出 OPENCL_VENDOR_PATH=/local/install/path/etc/vendors
  3. 导出 LD_LIBRARY_PATH=/local/install/path/lib/x86_64:$LD_LIBRARY_PATH


小智 1

ubuntu 14.04

相同的错误消息。GPU 无法识别。

症状-没有文件/etc/OpenCL/vendors

创建文件通过

sudo gedit /etc/OpenCL/vendors/amdocl64.icd
Run Code Online (Sandbox Code Playgroud)

输入/粘贴libamdocl64.so

节省

sudo gedit /etc/OpenCL/vendors/amdocl32.icd
Run Code Online (Sandbox Code Playgroud)

输入/粘贴libamdocl32.so

节省

sudo gedit /etc/OpenCL/vendors/inteocl.icd
Run Code Online (Sandbox Code Playgroud)

输入/粘贴libintelocl.so

节省

sudo gedit /etc/OpenCL/vendors/nvidia.icd
Run Code Online (Sandbox Code Playgroud)

输入/粘贴libcuda.so

节省

这对我有用。我还做了很多其他事情 - symlinc 和 xhost - 但他们最终没有解决问题。