Wie funktioniert OpenCL mit 14.10 + Nvidia 331.89-Treibern?


11

Proprietäre Treiber 331.89 geben mir kein OpenCL. (habe beide Tests / Updates ausprobiert) Für eine Weile hatte ich Version 304.123, die funktionierte - außer ich wollte die aktuellen Treiber und kann jetzt kein Downgrade durchführen.

Wie auch immer - ich könnte durch Problemumgehung ein Downgrade durchführen, aber ich wünschte, 331,89 hätten funktioniert.

Ich habe "darktable -d opencl" als Test verwendet, außerdem wurde ein symbolischer Link zu darktable hinzugefügt, aber das hilft bei 331.89 nicht

Antworten:


11

Auch ich war von diesem verwirrenden Problem verwirrt, bis ich eine Reihe von Forenbeiträgen über Virtual Lighttable fand, in denen die Teilnehmer einige Fehlerbehebungen durchführen. Es stellt sich heraus, dass die NVIDIA-Treiber eine benutzerdefinierte Modprobe-Regel benötigen, die nicht standardmäßig mit einem nvidia-331oder den opencl-Treibern installiert ist. Diese Regeln sind im nvidia-modprobePaket enthalten.

Hier ist eine Liste aller Pakete, die Sie benötigen, damit OpenCL unter Ubuntu 14.10 mit NVIDIA-Treibern funktioniert:

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

BEARBEITEN: Falls jemand unter Ubuntu 15.04 und den NVIDIA 346.59-Treibern auf ein ähnliches Problem stößt, ist der Befehl zum Beheben des Problems nahezu identisch:

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

Unter Linux Mint tritt dieser Fehler beim Ausführen des deviceQueryCUDA-Testprogramms auf:optirun --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
user3728501

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

Dann kompilieren Sie mit:

gcc -o main main.c -lOpenCL

Und verwenden Sie den Header als:

#include <CL/cl.h>

Anmerkungen:

Ich empfehle wirklich ein Upgrade auf 15.10, damit dies funktioniert: Ich hatte es noch nie geschafft.

Getestet am:

  • Lenovo ThinkPad T430 mit NVIDIA NVS 5400M
  • Lenovo ThinkPad W540 mit NVIDIA Quadro K1100M

0

Für Ubuntu 14.04 hat nvidia-modprobe mein System durcheinander gebracht. Aber ich habe festgestellt, dass das nvidia-331-uvm nicht von Anfang an aktiviert ist (Gott weiß warum). Also lass es uns aktivieren:

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

Und dann:

$ sudo clinfo

Dann können Sie opencl auch als Nicht-Root-Benutzer verwenden. Warum dies so ist, wird in der Virtual Lighttable-Mailingliste erläutert .

So habe ich endlich die nächsten Zeilen in meine /etc/rc.localDatei eingefügt :

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

Dann funktioniert alles reibungslos;)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.