web-dev-qa-db-fra.com

Comment installer CUDA Toolkit 7/8/9 sur Debian 8 (Jessie) ou 9 (Stretch)?

Comment installer Cuda Toolkit 7. ou 8 sur Debian 8?

Je sais que Debian 8 est livré avec l'option télécharger et installer CUDA Toolkit 6. en utilisant apt-get install nvidia-cuda-toolkit, mais comment procédez-vous pour la version 7.0 ou 8 de la boîte à outils CUDA?

J'ai essayé d'installer à l'aide des programmes d'installation d'Ubuntu, comme décrit ci-dessous:

Sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_AMD64.deb

dpkg -i cuda-repo-ubuntu1404_7.0-28_AMD64.deb

Sudo apt-get update

Sudo apt-get install -y cuda

Cependant, cela n'a pas fonctionné et le message suivant a été renvoyé:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-7-0 (= 7.0-28) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
26
Greg

Les instructions suivantes sont valables pour CUDA 7.0, 7.5 et plusieurs versions précédentes (et probablement ultérieures). En ce qui concerne les distributions Debian, elles sont valables pour Jessie et Stretch et probablement d'autres versions. Ils supposent une architecture AMD64 (x86_64), mais vous pouvez facilement les adapter pour x86 (x86_32).

Conditions préalables à l'installation

  • g ++ - Vous devez utiliser la dernière version de GCC prise en charge par votre version de CUDA. Pour CUDA 7.x, ce serait la version 4.9.3, dernière de la ligne 4.x; pour CUDA 8.0, les versions GCC 5.x sont prises en charge. Si votre distribution utilise GCC 5.x par défaut, utilisez-le, sinon GCC 5.4.0 devrait le faire. Les versions antérieures sont utilisables mais je ne les recommanderais pas, ne serait-ce que pour la meilleure prise en charge de la fonctionnalité C++ moderne pour le code côté hôte.
  • gcc - est livré avec g ++. Je pense même que CMake pourrait par défaut avoir nvcc invoquer gcc plutôt que g ++ dans certains cas avec un -x commutateur (mais pas sûr à ce sujet).
  • libGLU - Bibliothèques Mesa OpenGL (+ fichiers de développement?)
  • libXi - Bibliothèques d'extension X Window System Xinput (+ fichiers de développement?)
  • libXmu - Bibliothèque "utilitaires divers" du système X Window (+ fichiers de développement?)
  • Noyau Linux - en-têtes de la version du noyau que vous utilisez.

Si vous voulez une liste de packages spécifiques, cela dépend exactement de la distribution, mais essayez ce qui suit (pour CUDA 7.x):

Sudo apt-get install gcc g++ gcc-4.9 g++-4.9 libxi libxi6 libxi-dev libglu1-mesa libglu1-mesa-dev libxmu6 libxmu6-dev linux-headers-AMD64 linux-source

Et vous pourriez ajouter quelques -dbg versions de ces packages pour le débogage des symboles.

Je suis joli sûr que cela couvre tout - mais j'ai peut-être raté quelque chose que je venais d'installer. En outre, CUDA peut fonctionner avec clang , au moins expérimentalement, mais je n'ai pas essayé cela.

Installation du pilote du noyau CUDA

  1. Allez sur NVIDIA page Téléchargements CUDA .
  2. Choisissez Linux> x86_64> Ubuntu , puis quelle que soit la dernière version dont ils disposent (au moment de la rédaction: Ubuntu 15.04).
  3. Choisissez l'option . Run file .
  4. Téléchargez le fichier .run (actuellement celui-ci ). Assurez-vous que pas pour le mettre dans /tmp.
  5. Rendez le fichier .run exécutable: chmod a+x cuda_7.5.18_linux.run.
  6. Devenez root.
  7. Exécutez le fichier .run: faites semblant d'accepter leur stupide licence de film rétractable; dites "oui" à l'installation du pilote du noyau NVIDIA uniquement, et dites "non" à tout le reste.

L'installation doit vous indiquer qu'elle s'attend à avoir installé le pilote du noyau NVIDIA, mais que vous devez redémarrer avant de poursuivre/réessayer l'installation de la boîte à outils. Donc...

  1. Après avoir apparemment réussi, redémarrez.

Installer CUDA lui-même

  1. Soyez root.
  2. Recherchez et exécutez cuda_7.5.18_linux.run
  3. Cette fois-ci, dites Non à l'installation du pilote, mais Oui à l'installation de tout le reste, et acceptez les chemins par défaut (ou modifiez-les, selon ce qui vous convient).

Le programme d'installation devrait maintenant échouer. C'est une bonne chose en supposant que c'est le genre d'échec auquel nous nous attendons: cela devrait vous dire que votre version du compilateur n'est pas prise en charge - CUDA 7.0 ou 7.5 prend en charge jusqu'à gcc 4.9 et vous avez une version 5.x par défaut. Maintenant, si vous recevez un message à propos de - bibliothèques manquantes, cela signifie que mes instructions ci-dessus concernant les prérequis ont échoué, et vous devriez commenter ici afin que je puisse les corriger. En supposant que vous avez obtenu le "bon échec", passez à:

  1. Appelez à nouveau le fichier .run, cette fois avec l'option --override.
  2. Faites les mêmes choix qu'à l'étape 11.

CUDA devrait maintenant être installé, par défaut sous /usr/local/cuda (c'est un lien symbolique). Mais nous n'avons pas fini!

Demander au compilateur nvcc de NVIDIA d'utiliser la bonne version g ++

Le compilateur CUDA de NVIDIA appelle en fait g ++ dans le cadre du processus de liaison et/ou pour compiler les fichiers C++ réels plutôt que .cu. Je pense. Quoi qu'il en soit, il exécute par défaut tout ce qui se trouve sur votre chemin en tant que g++; mais si vous placez un autre g++ sous /usr/local/cuda/bin, il l'utilisera en premier! Donc...

  1. Exécutez symlink /usr/bin/g++-4.9 /usr/local/cuda/bin/g++ (et pour faire bonne mesure, peut-être aussi symlink /usr/bin/gcc-4.9 /usr/local/cuda/bin/gcc.

C'est ça.

Essayer l'installation

  1. cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
  2. make

La construction doit se terminer avec succès, et quand vous le faites

  1. ./vectorAdd

vous devriez obtenir la sortie suivante:

root@mymachine:~/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd# ./vectorAdd
[Vector addition of 50000 elements]
Copy input data from the Host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the Host memory
Test PASSED
Done

Remarques

  • Vous n'avez pas besoin d'installer le NVIDIA GDK (Kit de développement GPU), mais cela ne fait pas de mal et cela pourrait être utile pour certains. Installez-le dans le répertoire racine de votre système; c'est assez sûr et il y a un programme de désinstallation après: /usr/bin/uninstall_gdk.pl. Dans CUDA 8, il est déjà intégré à CUDA lui-même IIANM.
  • N'installez pas de packages supplémentaires avec des noms comme nvidia -... ou cuda ...; ils pourraient ne pas faire de mal mais ils ne vont certainement pas aider.
  • Avant de faire l'une de ces choses, vous voudrez peut-être vous assurer que votre GPU est reconnu du tout, en utilisant lspci | grep -i nvidia.
31
einpoklum

Je pense que vous devriez le faire en utilisant les rétroportages, j'installe en fait en douceur nvidia-cuda-toolkit 7,5 sur Debian Jessie.

Ajoutez des rétroportages, non gratuits, à votre /etc/apt/sources.list. Pour moi (sur jessie) je viens de mettre ça en bas de mon dossier:

# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

enregistré, mise à jour apt-get, et enfin:

apt-get install -t jessie-backports nvidia-cuda-toolkit
6
Poso

Après avoir ajouté contrib et non repos libre à sources.list et exécuté la mise à jour apt-get, CUDA Toolkit est dans Synaptic sous nvidia-cuda-toolkit.

1
Default picture

Avec Debian 9 "stretch" avec un ancien GPU (GT 720), des étapes supplémentaires sont nécessaires. Je vois que quelqu'un au-dessus (@celavek) avait cela, alors je vais remplir ce qui a fonctionné pour moi. La réponse acceptée couvre presque tout ce dont vous avez besoin. Reconnaître cela est un joli exemple de niche, mais j'espère qu'il peut y avoir des choses utiles ici qui permettront aux gens d'économiser quelques recherches sur Google.

Pour CUDA 8.0 à l'étape 1, cliquez sur "Legacy Releases" et sélectionnez "CUDA Toolkit 8.0 GA 2". Ensuite, Linux, x86_64, Ubuntu, 16.04, runfile (local).

Je n'ai pas accepté le pilote fourni et j'ai plutôt utilisé mes pilotes 384.130 précédemment installés pour mon GPU. Plus d'informations à ce sujet ici: Debian Wiki . Votre kilométrage peut varier, je ne peux pas parler de cartes autres qu'une GT 720. C'est la voie que j'ai choisie, je n'ai aucun regret (pour l'instant).

Lorsque l'installation échoue en raison d'une incapacité à InstallUtils.pm local à l'étape 12, vous devrez décompresser le fichier cuda_8.0.61_375.26_linux.run mais en l'exécutant avec l'indicateur --tar mxvf. Ensuite (en tant que root) copiez InstallUtils.pm dans/usr/lib/x86_64-linux-gnu/pearl-base:

./cuda_8.0.61_375.26_linux.run --tar mxvf
Sudo cp InstallUtils.pm /usr/lib/x86_64-linux-gnu/Perl-base

La commande de l'étape 12 devrait maintenant réussir.

Votre Debian 9.0 est livrée avec g ++ version 6+, cela ne fonctionnera pas. La compilation de vectorAdd à l'étape 15 échouera. J'ai suivi ce livre blanc: Installation de plusieurs versions de GCC pour installer la version 5.5.0. Pour 5.5.0, vous voudrez ce fichier

wget http://mirrors.concertpass.com/gcc/releases/gcc-5.5.0/gcc-5.5.0.tar.xz

et décompressez l'archive avec ceci:

tar -xJf gcc-5.5.0.tar.xz

J'avais besoin de mettre à jour certaines choses (bibliothèques et ajouter une compilation 32 bits) pour que cela fonctionne pour moi:

Sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev
Sudo dpkg --add-architecture i386
Sudo apt-get update
Sudo apt-get install build-essential gcc-multilib rpm libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

Vous pouvez maintenant configurer, créer et installer le compilateur.

N'oubliez pas de configurer avec l'indicateur - prefix =/usr/local/gcc/5.5.0

Vous pouvez maintenant compiler l'exemple vectorAdd à l'étape 15 avec ceci:

make Host_COMPILER=/usr/local/gcc/5.5.0/bin/g++

Ou ca:

export Host_COMPILER=/usr/local/gcc/5.5.0/bin/g++
make

Il n'est pas nécessaire de modifier le Makefile, il gère correctement le remplacement du compilateur.

Vous devriez maintenant avoir une installation CUDA 8.0 fonctionnelle sur Stretch.

1
Ingo

Essayez d'utiliser les programmes d'installation réseau pour Ubuntu à partir de cette page:

https://developer.nvidia.com/cuda-downloads#linux

Les programmes d'installation pour Ubuntu 14. * devraient être suffisamment compatibles.

0
Tomasz Klim

Vérification de l'installation sur Debian 9 Stretch et modification de PATH & LD_LIBRARY_PATH

Einpoklum la réponse ci-dessus m'a aidé à installer CUDA 10.0 sur Debian 9 Stretch.

Après avoir installé CUDA avec succès, je ne pouvais pas vérifier la version , et je résolvais que c'était parce que je devais changer le PATH & LD_LIBRARY_PATH en permanence en modifiant le fichier .bashrc


CUDA Toolkit Documentation here

0
Kelly