Как заставить OpenCL работать на 14.10 + драйверы Nvidia 331.89?


11

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

Во всяком случае - я мог бы понизить рейтинг в обход, но я бы хотел, чтобы 331,89 работал.

Я использовал "darktable -d opencl" в качестве теста и добавил символическую ссылку на darktable, но это не помогает с 331.89

Ответы:


11

Я тоже был озадачен этой озадачивающей проблемой, пока не обнаружил серию постов на форуме о Virtual Lighttable, в которых участники проводят некоторую отладку. Оказывается, что драйверам NVIDIA нужно настраиваемое правило modprobe, которое по умолчанию не устанавливается ни nvidia-331с драйверами opencl, ни с драйверами opencl. Эти правила приведены в nvidia-modprobeпакете.

Вот список всех пакетов, которые вам понадобятся, чтобы OpenCL работал на Ubuntu 14.10 с драйверами NVIDIA:

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 mint я сталкиваюсь с этой ошибкой при запуске 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.