Je suis très confus par les différentes versions de CUDA illustrées en exécutant which nvcc
et nvidia-smi
.
J'ai les deux cuda9.2 et cuda10 installés sur mon Ubuntu 16.04. Maintenant, je règle le PATH pour qu'il pointe sur cuda9.2. Alors quand je cours:
$ which nvcc
/usr/local/cuda-9.2/bin/nvcc
Cependant, quand je cours
$ nvidia-smi
Wed Nov 21 19:41:32 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.72 Driver Version: 410.72 CUDA Version: 10.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 106... Off | 00000000:01:00.0 Off | N/A |
| N/A 53C P0 26W / N/A | 379MiB / 6078MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1324 G /usr/lib/xorg/Xorg 225MiB |
| 0 2844 G compiz 146MiB |
| 0 15550 G /usr/lib/firefox/firefox 1MiB |
| 0 19992 G /usr/lib/firefox/firefox 1MiB |
| 0 23605 G /usr/lib/firefox/firefox 1MiB |
Est-ce que j'utilise cuda9.2 comme le suggère which nvcc
ou j'utilise cuda10 comme le suggère nvidia-smi
?
I vu cette réponse mais il ne fournit pas de réponse directe à la confusion, il nous demande simplement de réinstaller le cudatoolkit, ce que j'ai déjà fait.
CUDA a 2 API principales, le runtime et l’API du pilote. Les deux ont une version correspondante (par exemple 8.0, 9.0, etc.)
Le support nécessaire pour l’API du pilote (par exemple, libcuda.so sur linux) est installé par le programme d’installation du pilote GPU.
Le support nécessaire pour l’API d’exécution (par exemple, libcudart.so sous Linux et nvcc
) est installé par le programme d’installation du toolkit CUDA (qui peut également contenir un programme d’installation de pilote GPU).
Dans tous les cas, la version de l'API de pilote (installée) peut ne pas toujours correspondre à la version de l'API d'exécution (installée), en particulier si vous installez un pilote GPU indépendamment de l'installation de CUDA (c'est-à-dire le CUDA Toolkit).
L'outil nvidia-smi
est installé par le programme d'installation du pilote GPU et a généralement le pilote GPU en vue, et non rien installé par le programme d'installation du kit d'outils CUDA.
Récemment (quelque part entre la version de pilote 410.48 et 410.73 sur Linux), les pouvoirs en place chez NVIDIA ont décidé d'ajouter le rapport sur la version de l'API de pilote CUDA installée par le pilote, dans la sortie de nvidia-smi
.
Cela n’a aucune connexion avec la version d’exécution CUDA installée.
nvcc
, l'outil de pilote de compilateur CUDA installé avec la boîte à outils CUDA, signalera toujours la version d'exécution CUDA pour laquelle il a été créé. Il ne sait rien de la version du pilote installée, ni même si un pilote GPU est installé.
Par conséquent, à dessein, ces deux nombres ne correspondent pas nécessairement, car ils reflètent deux choses différentes.
nvcc
se trouve dans le dossier bin CUDA. Vérifiez si le dossier bin CUDA a été ajouté à votre $PATH
.
En particulier, assurez-vous d’avoir exécuté les actions CUDA post-installation (par exemple, à partir de ici ):
$PATH
(c'est-à-dire ajouter la ligne suivante à votre ~/.bashrc
)export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}
PS Assurez-vous que les deux chemins ci-dessus, existent d'abord:
/usr/local/cuda-10.1/bin
et/usr/local/cuda-10.1/NsightCompute-2019.1
(le chemin de NsightCompute peut avoir une fin légèrement différente en fonction de la version de Nsight compute installée ...
$LD_LIBRARY_PATH
(c'est-à-dire ajoutez la ligne suivante à votre ~/bashrc
).export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Ensuite, nvcc
et nvidia-smi
(ou nvtop
) signalent la même version de CUDA ...