Lors de l'installation d'Ubuntu (la variante mate, mais je ne pense pas que cela importe) 18.04, j'ai été assez heureux de voir qu'il y avait maintenant un support complet du référentiel pour nvidia cuda et python numba, ce qui était douloureux à installer dans les anciennes versions.
J'ai le pilote nividia-390 (propre), j'ai l'installation cuda du référentiel, l'installation python-3 numba du référentiel, et l'installation nvidia-cuda-toolkit du référentiel.
Cuda fonctionne, dans le sens où nvcc peut compiler et exécuter des exemples en code C. Numba fonctionne, dans le sens où je peux utiliser @jit et avoir une accélération CPU. Pycuda fonctionne. Je peux utiliser pycuda en python3 et l'utiliser avec cuda.
Cependant, numba est censé permettre une accélération GPU via cuda, et cela échoue. Lorsque j'exécute un exemple simple, à la fin d'une longue trace d'erreurs, j'ai :
Erreur d'exécution : Fichier libdevice manquant pour compute_35.
Assurez-vous que vous avez le package cudatoolkit 7.5.
Installez le package en faisant :
conda install cudatoolkit=7.5
Cependant, je n'ai pas utilisé conda pour installer numba, j'ai utilisé le référentiel. Et il semble que le cudatoolkit du référentiel soit en version 9.1, pas 7.5.
Après quelques recherches, j'ai appris que le coupable est que le code exécutable installé avec numba a été compilé avec les bibliothèques cudatoolkit 7.5 et non les 9.1 installées par le référentiel.
Quelle est la manière la plus propre de résoudre cela ? De préférence, j'aimerais rester aussi proche que possible des référentiels officiels.