web-dev-qa-db-fra.com

Pourquoi OpenCL n'est pas par défaut (14.04, nVidia 331)?

Je ne suis qu'un sans OpenCL ou est-ce un problème commun?

UPDATE: Il semble que quelque chose ait été supprimé /etc/OpenCL/vendors/nvidia.icd, qui aurait dû être installé avec nvidia-opencl-icd-331 , mais ce n’est pas le cas.

Cela a commencé avec BOINC. Il a refusé de calculer Milkyway données spécifiquement extraites pour mon 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

J'ai donc décidé de vérifier pourquoi il n'y a pas d'OpenCL. Je n'ai pas trouvé de moyen "officiel" de vérifier le support OpenCL, mais j'ai trouvé des personnes qui utilisaient darktable :

$ 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.

Aussi essayé de détecter quoi que ce soit avec 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)'

Enfin découvert clinfo:

$ clinfo
I: ICD loader reports no usable platforms

Et ensuite Comment faire fonctionner OpenCL sur les pilotes 14.10 + Nvidia 331.89?

Je ne comprenais toujours pas pourquoi BOINC n'arrivait pas à détecter la version du pilote nVidia. J'ai donc retiré boinc et installé boinc-nvidia-cuda , mais le problème ne s'est pas résolu. J'ai aussi essayé de voir s'il manquait quelque chose avec opencl, mais cela semble aller.

La question liée dit d'installer nvidia-modprobe. Je l'essaie maintenant. Cependant, je ne comprends pas comment cette pilule magique devrait fonctionner, et si cela fonctionne: pourquoi n'est-il pas activé par défaut? Je me demande également s’il devrait y avoir un paquetage virtual faisant tout le nécessaire pour activer OpenCL?

6
anatoly techtonik

Je ne sais pas exactement pourquoi cela se produit ni comment le problème est résolu.

Tout d’abord, le nvidia-331-uvm n’est pas activé depuis le début (Dieu sait pourquoi). Alors activons-le:

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

Ensuite, si vous faites clinfo vous aurez la même erreur à propos de chargeur ICD. Néanmoins, si vous le faites en tant que root:

$ Sudo clinfo

Vous obtiendrez un bon résultat (E: -30), puis vous pourrez également exécuter la commande en tant qu'utilisateur non root. Longue histoire courte:

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

Ensuite, darktable -d opencl fonctionne également, ou n’importe quel programme opencl;).

UPDATE

J'ai finalement ajouté les lignes suivantes dans mon fichier /etc/rc.local:

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

Ensuite, tout fonctionne bien;)

1
silgon

J'ai passé deux jours frustrants à essayer d'ajouter gpugrid en tant que projet Boinc. Le journal Boinc indique, no usable GPUs found, mais sans se soucier de dire pourquoi. J'ai donc quitté Windows Vista (ce que je n'aime pas faire) jusqu'à ce que Boinc, Nvidia et Ubuntu se soient bien organisés.

Il y a beaucoup d'informations trompeuses sur le Web à trier. J'ai réussi à installer le pilote Nvidia 355.11 à l'aide du nouveau PPA graphique. J'ai prouvé que la carte GTX 960 et le pilote sont reconnus. Cependant, en utilisant un test de darktableInstall darktable J'ai prouvé que OpenCL ne fonctionnait pas même si la carte graphique fonctionnait correctement en tant que périphérique de sortie vidéo de l'ordinateur. Résoudre la fonctionnalité OpenCL manquante est trop demander à chaque nouveau contributeur au calcul en grille.

0
Francis Henderson