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.
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).
-x
commutateur (mais pas sûr à ce sujet).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.
/tmp
.chmod a+x cuda_7.5.18_linux.run
.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...
cuda_7.5.18_linux.run
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 à:
CUDA devrait maintenant être installé, par défaut sous /usr/local/cuda
(c'est un lien symbolique). Mais nous n'avons pas fini!
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...
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.
cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
make
La construction doit se terminer avec succès, et quand vous le faites
./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
/usr/bin/uninstall_gdk.pl
. Dans CUDA 8, il est déjà intégré à CUDA lui-même IIANM.lspci | grep -i nvidia
.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
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.
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.
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.
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