Jak sprawić, aby OpenCL działał na sterownikach 14.10 + Nvidia 331.89?


11

Własne sterowniki 331,89 nie dają mi OpenCL. (wypróbowałem oba przetestowane / aktualizacje) przez jakiś czas miałem wersję 304.123, która działała - tyle że chciałem aktualnych sterowników, a teraz nie mogę obniżyć wersji.

W każdym razie - mógłbym obniżyć wersję poprzez obejście, ale chciałbym, aby 331,89 zadziałało.

Użyłem „darktable -d opencl”, ponieważ testowy alos dodał symboliczne łącze do darktable, ale to nie pomaga w 331,89

Odpowiedzi:


11

Ja też byłem zaskoczony tym problematycznym problemem, dopóki nie znalazłem serii postów na forum o Virtual Lighttable, w której uczestnicy przeprowadzają debugowanie. Okazuje się, że sterowniki NVIDIA potrzebują niestandardowej reguły modprobe, która nie jest instalowana domyślnie ze nvidia-331sterownikami opencl. Zasady te znajdują się w nvidia-modprobepakiecie.

Oto lista wszystkich pakietów, których będziesz potrzebować, aby OpenCL działał na Ubuntu 14.10 ze sterownikami NVIDIA:

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

EDYCJA: Jeśli ktoś napotka podobny problem w Ubuntu 15.04 i sterownikach NVIDIA 346.59, polecenie naprawy problemu jest prawie identyczne:

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

W systemie Linux mint napotkałem ten błąd podczas uruchamiania deviceQueryprogramu testowego CUDA: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
użytkownik3728501

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

Następnie skompiluj z:

gcc -o main main.c -lOpenCL

I użyj nagłówka jako:

#include <CL/cl.h>

Uwagi:

Naprawdę polecam aktualizację do wersji 15.10, aby to działało: nigdy wcześniej tego nie robiłem.

Testowane na:

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

0

W przypadku Ubuntu 14.04 nvidia-modprobe zepsuło mój system. Ale zdałem sobie sprawę, że nvidia-331-uvm nie jest aktywowana od samego początku (Bóg wie dlaczego). Więc aktywujmy to:

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

I wtedy:

$ sudo clinfo

Wtedy będziesz mógł używać opencl nawet jako użytkownik inny niż root. Dlaczego tak jest wyjaśnione na liście mailingowej Virtual Lighttable .

Tak więc w końcu dodałem kolejne wiersze w moim /etc/rc.localpliku:

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

Wtedy wszystko działa płynnie;)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.