web-dev-qa-db-fra.com

Le test CUDA 7.0 a échoué sur Ubuntu 14.04

J'ai suivi le guide officiel nvidia pour installer cuda-7.0, mais j'ai eu quelques problèmes car ils ne fournissaient pas une explication complète. Et mes échantillons de test ne peuvent pas être générés par make. Je vais expliquer les nombreuses erreurs que j'ai trouvées lors de l'installation.

environnement

Je travaille sur un Ubuntu 14.04 64 bits, avec NVIDIA Corporation GK107 [GeForce GT 640 OEM] renvoyé par lspci | grep -i nvidia. Ma version de gcc est 4.4.7.

paquet

J'ai téléchargé à partir de https://developer.nvidia.com/cuda-downloads le fichier "Linux x86 -> Ubuntu 14.04 -> Local Package Installer", pour lequel il ne fournit pas de valeur md5 à vérifier. Mais plus tard, l’installation s’avérait bien.

installation

J'ai fait:

Sudo dpkg -i cuda*.deb # returned: OK
Sudo apt-get update
Sudo apt-get install cuda

tester

Comme le dit le guide officiel, je dois d'abord configurer le chemin de l'environnement. J'ai changé pour:

cd /usr/local/cuda-7.0

et je peux ajouter un chemin:

export PATH=/usr/local/cuda-7.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH

Voici le premier problème: le chemin est perdu chaque fois que je ferme le terminal. Depuis que je peux le vérifier avec nvcc -V où nous avons nvcc sous le premier répertoire.

Quand j'ai essayé de compiler les exemples:

cd /usr/local/cuda-7.0/samples
Sudo make

Enfin, il a renvoyé des erreurs:

make[1]: entering directory `/usr/local/cuda-7.0/samples/2_Graphics/Mandelbrot'
/usr/local/cuda-7.0/bin/nvcc -ccbin g++   -m64      -gencode
Arch=compute_20,code=sm_20 -gencode Arch=compute_30,code=sm_30 -gencode
Arch=compute_35,code=sm_35 -gencode Arch=compute_37,code=sm_37 -gencode
Arch=compute_50,code=sm_50 -gencode Arch=compute_52,code=sm_52 -gencode
Arch=compute_52,code=compute_52 -o Mandelbrot Mandelbrot.o Mandelbrot_cuda.o Mandelbrot_gold.o  -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-346" -lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW
/usr/bin/ld: warning: libnvidia-tls.so.346.46, needed by /usr/lib/nvidia-346/libGL.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnvidia-glcore.so.346.46, needed by /usr/lib/nvidia-346/libGL.so, not found (try using -rpath or -rpath-link)
/usr/lib/nvidia-346/libGL.so:‘_nv018tls’ undefined reference
...
# list of undefined reference

Et je ne peux pas aller plus loin.

autres chèques

  • cat /proc/driver/nvidia/version ne fonctionne pas car /proc/driver n'a pas le répertoire nvidia/.

  • /dev/nvidia* ne se ferme pas.

  • nvidia-smi commande introuvable.

Ces problèmes existent après le redémarrage.


quelques corrections

Correction du chemin et des paramètres de lib en ajoutant ces deux lignes sous ~/.profile pour l'utilisateur actuel:

export PATH=/usr/local/cuda-7.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH

Et trouvé un lien utile: Installation et test de CUDA dans Ubuntu 14.04 il semble que j’ai besoin d’installer à la place le fichier.

3
knh190

Après plusieurs essais, j'ai finalement trouvé la solution. L'installation de CUDA est une tâche ardue, pour laquelle continue de corrompre la configuration de mon système que je n'ai aucun moyen de rétablir.

La solution pour l'installation doit être effectuée en mode tty1 (la ligne de commande), car elle doit tuer le service d'interface graphique avant d'installer les pilotes NVIDIA. refuser de travailler. Et nous avons besoin du fichier .run. Pour des raisons que je ne peux pas savoir, les fichiers .deb ne se configurent jamais correctement et je ne les ai jamais obtenus. look Installation et test de CUDA dans Ubuntu 14.04 pour une solution similaire.

Besoin de mentionner, selon mes sentiers:

  • l'installation via apt ne peut pas réussir.
  • l'installation via des fichiers deb ne peut pas aboutir.
3
knh190

J'ai eu le même problème. L'exécution de la commande suivante m'a aidé à tester et à comprendre le problème:

ldd /usr/lib/nvidia-346/libGL.so.346.46

Enfin, l’ajout de ce qui suit à mon ~/.profile a résolu le problème:

export LD_LIBRARY_PATH=/usr/lib/nvidia-346:$LD_LIBRARY_PATH

en effet, le chemin /usr/lib/nvidia-346 n'a pas été donné à l'éditeur de liens.

3
Cory86

Moi aussi j'ai fait face au même problème, sous Ubuntu 14.04, x86_64 avec cuda 7.5. Les avertissements étaient:

/usr/bin/ld: warning: libnvidia-tls.so.352.63, needed by /usr/lib/nvidia-352/libGL.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnvidia-glcore.so.352.63, needed by /usr/lib/nvidia-352/libGL.so, not found (try using -rpath or -rpath-link)

C'était la sortie de ldd /usr/lib/nvidia-352/libGL.so:

$ ldd /usr/lib/nvidia-352/libGL.so
linux-vdso.so.1 =>  (0x00007ffc1c5d4000)
libnvidia-tls.so.352.63 =>
libnvidia-glcore.so.352.63 =>
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f161512e000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f1614f1c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1614b57000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1614952000)
libm.so.6 => /lib/x86_64-linux-(0x00007f1615488000)gnu/libm.so.6 (0x00007f161464c000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f161442d000)
/lib64/ld-linux-x86-64.so.2 (0x0000557aa9c51000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1614228000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1614022000)

J'ai ajouté la ligne suivante à ~/.zshrc (~/.bashrc... si vous utilisez bash):

export LD_LIBRARY_PATH=/usr/lib/nvidia-352:$LD_LIBRARY_PATH

Ainsi, voici les entrées relatives à cuda dans my ~/.zshrc:

export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/nvidia-352:$LD_LIBRARY_PATH

Puis j'ai recherché ~/.zshrc

source ~/.zshrc

Maintenant, ldd /usr/lib/nvidia-352/libGL.so montre:

linux-vdso.so.1 =>  (0x00007ffc1c5d4000)
libnvidia-tls.so.352.63 => tls/libnvidia-tls.so.352.63 (0x00007f1617f1c000)
libnvidia-glcore.so.352.63 (0x00007f1615488000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f161512e000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f1614f1c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1614b57000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1614952000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f161464c000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f161442d000)
/lib64/ld-linux-x86-64.so.2 (0x0000557aa9c51000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1614228000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1614022000)

Après cela, le répertoire make à l'intérieur de NVIDIA_CUDA-7.5_Samples s'est terminé avec succès.

1
Aby Sam Ross

J'ai eu le même problème. J'ai installé en utilisant le paquet .deb du site Web nvidia sur Ubuntu 14.04. La solution pour moi était:

  • ajoutez export LD_LIBRARY_PATH=/usr/lib/nvidia-346:$LD_LIBRARY_PATH à ~/.bashrc
  • type de terminal ouvert:
  • cd dans le dossier samples
  • Sudo bash
  • source ~./bashrc
  • vérifie si/usr/lib/nvidia-346 est dans LD_LIBRARY_PATH
  • make -j

Cela a résolu le problème pour moi.

J'ai l'impression qu'il y a des problèmes de permission lors de l'installation de CUDA à l'aide du fichier cuda-repo-ubuntuXXX_AMD64.deb. J'ai le

0
StefanoHo