Por que o OpenCL não é padrão (14.04, nVidia 331)?

6

Eu sou apenas um sem o OpenCL ou é um problema comum?

UPDATE : Parece que algo foi removido /etc/OpenCL/vendors/nvidia.icd , que deveria ter sido instalado com nvidia-opencl-icd-331 , mas isso não acontece.

Começou com o BOINC. Ele se recusou a calcular os dados da Milkyway especificamente buscados para a minha GPU:

Starting BOINC client version 7.2.42 for i686-pc-linux-gnu
...
CUDA: NVIDIA GPU 0: GeForce GT 520 (driver version unknown, CUDA version 6.0,
 compute capability 2.1, 1023MB, 999MB available, 156 GFLOPS peak)
...
Requesting new tasks for CPU and NVIDIA
App version needs OpenCL but GPU doesn't support it
Scheduler request completed: got 2 new tasks
[error] App version uses non-existent NVIDIA GPU
[error] Missing coprocessor for task de_modfit_fast_simulated15_136_free_1_14
13455402_27741174_0; aborting

Então decidi verificar por que não há OpenCL. Não encontrei uma maneira "oficial" de verificar o suporte do OpenCL, mas descobri que as pessoas usam mesa escura :

$ darktable -d opencl
[opencl_init] opencl related configuration options:
...
[opencl_init] trying to load opencl library: '<system default>'
[opencl_init] opencl library 'libOpenCL' found on your system and loaded
[opencl_init] could not get platforms: -1001
[opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.

Também tentou detectar algo com pyrit :

$ pyrit list_cores
Pyrit 0.4.0 (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+

The following cores seem available...
#1:  'CPU-Core (SSE2)'
#2:  'CPU-Core (SSE2)'

Finalmente descoberto clinfo :

$ clinfo
I: ICD loader reports no usable platforms

E então Como fazer OpenCL funciona com 14.10 + drivers Nvidia 331.89?

Ainda não consegui entender porque o BOINC não consegue detectar a versão do driver da nVidia, por isso removi boinc e instalei boinc-nvidia-cuda , mas o problema não desapareceu. Eu também tentei ver se há algo com opencl ausente, mas parece bem.

A pergunta vinculada diz para instalar nvidia-modprobe . Eu estou tentando agora. No entanto, não entendo como essa pílula mágica deve funcionar e se funciona - por que ela não está ativada por padrão? Também gostaria de saber se deveria haver algum pacote virtual que faz todo o necessário para ativar o OpenCL?

    
por anatoly techtonik 21.01.2015 / 23:54

2 respostas

1

Eu não sei exatamente por que isso está acontecendo ou como de alguma forma o problema está resolvido.

Primeiro de tudo, o nvidia-331-uvm não é ativado desde o início (deus sabe por quê). Então vamos ativá-lo:

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

Então, se você usar clinfo , terá o mesmo erro sobre o carregador ICD . No entanto, se você fizer isso como root:

$ sudo clinfo

Você obterá um bom resultado (E: -30) e também poderá executar o comando como um usuário não raiz. Longa história curta:

$ clinfo
I: ICD loader reports no usable platforms
$ sudo clinfo 
E: -30
$ clinfo 
E: -30
# then you run anything as non-root user

Então, também darktable -d opencl funciona bem, ou qualquer programa opencl;).

UPDATE

Eu finalmente adicionei as próximas linhas no meu arquivo /etc/rc.local :

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

Então tudo funciona bem;)

    
por silgon 20.05.2015 / 00:44
0

Eu passei dois dias frustrantes tentando adicionar gpugrid como um projeto Boinc. O log Boinc diz, no usable GPUs found , mas sem se preocupar em informar o motivo. Então, eu saí e fui para o Windows 7 (que eu odeio fazer) até Boinc, Nvidia e Ubuntu obterem seus atos juntos.

Existe muita informação enganosa na Web para analisar. Eu consegui obter o driver Nvidia 355.11 instalado usando o novo PPA gráfico. Eu provei que a placa e o driver da GTX 960 são reconhecidos. No entanto, usando um teste de darktable Eu provei que o OpenCL não está funcionando mesmo que a placa gráfica esteja funcionando corretamente como o dispositivo de saída de vídeo do computador. Resolver o recurso OpenCL ausente é pedir demais para cada novo colaborador de computação em grade.

    
por Francis Henderson 14.12.2015 / 01:07