web-dev-qa-db-fra.com

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

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

11
user105939

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
11
bkloppenborg

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:

Je recommande vraiment de passer à la version 15.10 pour que cela fonctionne: je n'avais jamais réussi auparavant.

Testé sur:

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

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;)

0
silgon