Como fazer o OpenCL funcionar em drivers 14.10 + Nvidia 331.89?


11

Os drivers proprietários 331.89 não me dão o OpenCL. (tentei ambos testados / atualizações) por um tempo eu tinha a versão 304.123 que funcionava - exceto que eu queria os drivers atuais e agora não consigo fazer o downgrade.

Enfim - eu poderia fazer o downgrade por solução alternativa, mas gostaria que 331.89 funcionasse.

Eu usei "darktable -d opencl" como teste acrescentou um link simbólico para o darktable, mas isso não ajuda no 331.89

Respostas:


11

Eu também fiquei confuso com esse problema desconcertante até encontrar uma série de postagens no fórum sobre o Virtual Lighttable em que os participantes fazem alguma depuração. Acontece que os drivers da NVIDIA precisam de uma regra personalizada do modprobe que não seja instalada por padrão com nvidia-331os drivers opencl. Essas regras são fornecidas no nvidia-modprobepacote.

Aqui está uma lista de todos os pacotes que você precisará para que o OpenCL funcione no Ubuntu 14.10 com drivers NVIDIA:

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

EDIT: Caso alguém encontre um problema semelhante no Ubuntu 15.04 e nos drivers NVIDIA 346.59, o comando para corrigir o problema é quase idêntico:

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

No Linux mint, encontrei este erro ao executar o deviceQueryprograma de teste 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

Em seguida, compile com:

gcc -o main main.c -lOpenCL

E use o cabeçalho como:

#include <CL/cl.h>

Notas:

Eu realmente recomendo a atualização para 15.10 para que isso funcione: eu nunca havia conseguido antes.

Testado em:

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

0

Para o Ubuntu 14.04, a nvidia-modprobe bagunçou meu sistema. Mas percebi que a nvidia-331-uvm não é ativada desde o início (Deus sabe o porquê). Então, vamos ativá-lo:

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

E depois:

$ sudo clinfo

Então você poderá usar o opencl mesmo como um usuário não root. Por que é assim é explicado na lista de discussão do Virtual Lighttable .

Assim, finalmente adicionei as próximas linhas no meu /etc/rc.localarquivo:

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

Então tudo funciona sem problemas;)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.