如何使OpenCL在14.10 + Nvidia 331.89驱动程序上工作?


11

专有驱动程序331.89没有给我OpenCL。(尝试并测试/更新)一段时间,我的版本304.123可以正常工作-除了我想要当前的驱动程序外,现在无法降级。

无论如何-我可以通过变通办法降级,但我希望331.89可以工作。

我使用“ darktable -d opencl”作为测试,还向黑暗表添加了符号链接,但这对331.89没有帮助

Answers:


11

这个困惑的问题也让我感到困惑,直到我发现了一系列关于虚拟光桌论坛帖子,参与者在其中进行了一些调试。事实证明,NVIDIA驱动程序需要一个自定义modprobe规则,该规则默认情况下未随nvidia-331opencl驱动程序一起安装。这些规则在nvidia-modprobe软件包中提供。

这是在具有NVIDIA驱动程序的Ubuntu 14.10上运行OpenCL所需的所有软件包的列表:

sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe

编辑:万一有人在Ubuntu 15.04和NVIDIA 346.59驱动程序上遇到类似问题,修复该问题的命令几乎相同:

sudo apt-get install nvidia-346 nvidia-346-uvm nvidia-opencl-dev nvidia-modprobe

在Linux deviceQueryoptirun --bridge primus ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) cudaGetDeviceCount returned 38 -> no CUDA-capable device is detected Result = FAIL
Mint

2

Ubuntu 15.10

sudo apt-get install nvidia-352 nvidia-352-dev nvidia-prime nvidia-modprobe nvidia-opencl-dev
sudo ln -s /usr/include/nvidia-352/GL /usr/local/include
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so

然后编译:

gcc -o main main.c -lOpenCL

并将标头用作:

#include <CL/cl.h>

笔记:

我真的建议升级到15.10才能使它正常工作:我以前从未尝试过。

经过测试:

  • 带有NVIDIA NVS 5400M的Lenovo ThinkPad T430
  • 带有NVIDIA Quadro K1100M的Lenovo ThinkPad W540

0

对于Ubuntu 14.04,nvidia-modprobe弄乱了我的系统。但是我意识到nvidia-331-uvm并没有从一开始就被激活(上帝知道原因)。因此,让我们激活它:

$ sudo modprobe nvidia-331-uvm
$ sudo mknod -m 666 /dev/nvidia-uvm c 249 0

接着:

$ sudo clinfo

然后,您甚至可以以非root用户身份使用opencl。在Virtual Lighttable邮件列表中解释了为什么会这样。

因此,我终于在/etc/rc.local文件中添加了以下几行:

# begin opencl config
modprobe nvidia-331-uvm
mknod -m 666 /dev/nvidia-uvm c 249 0
clinfo
# end opencl config 

然后,一切都会顺利进行;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.