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


11

Les pilotes propriétaires 331.89 ne me donnent pas OpenCL. (J'ai essayé les deux tests / 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 je souhaite que 331.89 fonctionne.

J'ai utilisé "darktable -d opencl" comme test alos ajouté un lien symbolique vers darktable, mais cela n'aide pas avec 331.89

Réponses:


11

Moi aussi, j'ai été confondu par ce problème déroutant 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 l'un nvidia-331ou les pilotes opencl. Ces règles sont fournies dans le nvidia-modprobepackage.

Voici une liste de tous les packages dont vous aurez besoin pour faire fonctionner OpenCL sur 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 pour résoudre le problème est presque identique:

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

Sous Linux, je rencontre cette erreur lors de l'exécution du deviceQueryprogramme de test 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

Compilez ensuite 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

0

Pour Ubuntu 14.04, nvidia-modprobe a foiré mon système. Mais j'ai réalisé 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

Puis:

$ sudo clinfo

Ensuite, vous pourrez utiliser opencl même en tant qu'utilisateur non root. Pourquoi c'est comme ça est expliqué dans la liste de diffusion Virtual Lighttable .

Ainsi, j'ai finalement ajouté les lignes suivantes dans mon /etc/rc.localfichier:

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

Ensuite, tout fonctionne bien;)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.