Les pilotes propriétaires 331.89 ne me donnent pas OpenCL. (essayé les deux testés/mises à jour) pendant un certain temps, j'avais la version 304.123 qui fonctionnait - sauf que je voulais les pilotes actuels et que je ne peux plus rétrograder.
Quoi qu'il en soit - je pourrais rétrograder par solution de contournement, mais j'aimerais que 331,89 fonctionne.
J'ai utilisé "darktable -d opencl" comme test pour ajouter un lien symbolique à darktable, mais cela n'aide pas 331.89
Moi aussi, j'ai été confondu par ce problème épineux jusqu'à ce que je trouve une série de messages sur le forum sur Virtual Lighttable dans lesquels les participants effectuent un débogage. Il s'avère que les pilotes NVIDIA ont besoin d'une règle modprobe personnalisée qui n'est pas installée par défaut avec nvidia-331
ou les pilotes opencl. Ces règles sont fournies dans le package nvidia-modprobe
.
Voici une liste de tous les paquets dont vous aurez besoin pour qu'OpenCL fonctionne avec Ubuntu 14.10 avec les pilotes NVIDIA:
Sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe
EDIT: Si quelqu'un rencontre un problème similaire sur Ubuntu 15.04 et les pilotes NVIDIA 346.59, la commande permettant de résoudre le problème est presque identique:
Sudo apt-get install nvidia-346 nvidia-346-uvm nvidia-opencl-dev nvidia-modprobe
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
Puis compiler avec:
gcc -o main main.c -lOpenCL
Et utilisez l'en-tête comme:
#include <CL/cl.h>
Remarques:
nvidia-current
. C'est vieux. apt-cache search nvidia
et obtenez le dernier, ou utilisez l'onglet software-properties-gtk
"Pilotes supplémentaires".Je recommande vraiment de passer à la version 15.10 pour que cela fonctionne: je n'avais jamais réussi auparavant.
Testé sur:
Pour Ubuntu 14.04, nvidia-modprobe a endommagé mon système. Mais je me suis rendu compte que le nvidia-331-uvm n’est pas activé dès le départ (dieu sait pourquoi). Alors activons-le:
$ Sudo modprobe nvidia-331-uvm
$ Sudo mknod -m 666 /dev/nvidia-uvm c 249 0
Et alors:
$ Sudo clinfo
Ensuite, vous pourrez utiliser opencl même en tant qu'utilisateur non root. Pourquoi c'est comme cela est expliqué dans la liste de diffusion Virtual Lighttable .
Ainsi, 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;)