Як змусити OpenCL працювати на 14.10 + Nvidia 331.89 драйверів?


11

Власні драйвери 331.89 не дають мені OpenCL. (спробував і тестування / оновлення) деякий час у мене була версія 304.123, яка працювала - за винятком того, що я хотів поточних драйверів, і тепер не в змозі повернути її назад.

У будь-якому випадку - я міг би погіршитись шляхом подолання, але я хочу, щоб 331,89 працювали.

Я використовував "darktable -d opencl", як тест alos додав символічне посилання на darktable, але це не допомагає з 331.89

Відповіді:


11

Мене теж збентежила ця непроста проблема, поки я не знайшов серію дописів на форумі про Virtual Lighttable, в якому учасники робили налагодження. Виявляється, драйверам NVIDIA потрібне користувацьке правило modprobe, яке не встановлено за замовчуванням ні з, ні nvidia-331з драйверами opencl. Ці правила надаються в nvidia-modprobeупаковці.

Ось перелік усіх пакетів, які вам знадобляться, щоб OpenCL працював над Ubuntu 14.10 з драйверами NVIDIA:

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

EDIT: У разі, якщо хтось зіткнеться з подібною проблемою на Ubuntu 15.04 та драйверах NVIDIA 346.59, команда виправити проблему майже однакова:

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

На монетному дворі Linux я зіткнувся з цією помилкою під час запуску deviceQueryтестової програми 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
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

Потім компілюйте з:

gcc -o main main.c -lOpenCL

І використовувати заголовок як:

#include <CL/cl.h>

Примітки:

Я дійсно рекомендую модернізувати до 15.10, щоб змусити це працювати: я ніколи раніше не вдавався.

Тестовано на:

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

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

Тоді ви зможете використовувати opencl навіть як не-root користувач. Чому це так, пояснюється у списку розсилки 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 

Тоді все працює без проблем;)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.