C++Guns – RoboBlog blogging the bot

12.02.2011

CUDA Install mini HowTo

Filed under: Allgemein — Tags: , — Thomas @ 16:02

CUDA Install mini HowTo

0.0 Lesenswertes

1.0 Installation
1.1 Download
1.2 SDK instalieren
1.3 Beispiele instalieren
1.4 Nvidia Treiber installieren

2.0 Installation testen

3.0 Fehler beim compilieren der Beispiele

0.1 Lesenswertes

Der "Linux getting started guide" auf der Nvidia download Seite ist sehr zu empfehlen!
http://developer.nvidia.com/object/cuda_3_2_downloads.html#Linux
http://developer.download.nvidia.com/compute/cuda/3_2_prod/docs/Getting_Started_Linux.pdf

Des weiteren arbeite ich gerade das Buch "Cuda By Example" was es aber leider nicht umsonst gibt.

1.0 Installation
1.1 Download

Ihr braucht die passenden Nvidia Treiber, das CUDA SDK und die Beispiele.

"CUDA Toolkit for Ubuntu Linux 10.04"
http://www.nvidia.com/object/thankyou.html?url=/compute/cuda/3_2_prod/toolkit/cudatoolkit_3.2.16_linux_64_ubuntu10.04.run

Beispiele "GPU Computing SDK code samples"
http://developer.download.nvidia.com/compute/cuda/3_2_prod/sdk/gpucomputingsdk_3.2.16_linux.run

Nvidia Developer Drivers for Linux (260.19.26)
http://developer.download.nvidia.com/compute/cuda/3_2_prod/docs/Getting_Started_Linux.pdf

1.2 SDK installieren

Die Dateien mit chmod +x ausfuehrbar.
Ich empfehle dringend jetzt schon den started guide zumindest ueberflogen zu haben. Man spart einfach eine Menge Zeit bei der Fehlersuche.

Installiert das SDK
./cudatoolkit_3.2.16_linux_64_ubuntu10.04.run

Beachtet die Meldungen bei der Installation. Am Ende kommt der Hinweis, dass ihr die PATH und LD_LIBRARY_PATH
Variable und richtig setzten muesst. Sonst wird der Compiler und die Libs nicht gefunden spaeter.

Bei mir ist das Installationsverzeichnis /usr/local/cuda also muesst ihr die PATH Variable nach /usr/local/cuda/bin setzen
export PATH=$PATH:/usr/local/cuda/bin
und
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

1.3 Beispiele installieren

Das installieren der Beispiele ist unkritisch.

./gpucomputingsdk_3.2.16_linux.run

1.4 Nvidia Treiber installieren

Die nvidia Treiber installation ist meist immer mit etwas Aufwand verbunden wenn kein reines Debian System verwendet wird.
Folgende Seite gab mir wertvolle Tipps
http://www.ubuntugeek.com/howto-install-nvidia-drivers-manually-on-ubuntu-10-04-lucid-lynx.html

1)
Folgende Module

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

in die /etc/modprobe.d/blacklist.conf eintragen.

2)
Nvidia Kram deinstallieren
sudo apt-get --purge remove nvidia-*

3) Wenn die oben genannten Module noch geladen sind, schlaegt die Installation des Nvidia Treibers fehlt.
Also Module von Hand entfernen oder neustarten. Nach einem Neustart kann es sei, dass X nicht mehr funktioniert.
Aber das ist nicht schlimm, wir muessen eh auf die Konsole wechseln. Also den Knopf choose Exit to terminal (Exit to console) irgendwo finden oder klassisch mit STRG+ALT+F2 auf eine Konsole wechseln.

4) Sicherstellen dass kdm gdm etc (der Loginmanager) nicht mehr laeuft.
sudo service kdm stop
sudo servide gdm stop

Oder welchen Loginmanager ihr auch immer verwendet.

5) Nun kann der Nvidia Treiber installiert werden.
./devdriver_3.2_linux_64_260.19.26.run

Einmal beten dass alles gut laeuft, wenn nicht -> google.
Am Ende bietet uns der Installer an nvidia-xconfig auszufruehen, ja bitte.

6) Den Loginmanager wieder starten
sudo service kdm start
sudo service gdm start

Bei Fehler kann ich nur Raten den started guide einmal durchzulesen und nach der Fehlermeldung zu googlen.
Oft fehlen Compiler / Kernelsourcen um den Treiber zu komplilieren. Die muessen dann nachinstalliert werden.

2.0 Installation testen

Wie im started Guide beschrieben, nach ~/NVIDIA_GPU_Computing_SD/C wechseln und mit make die Beispiele compileren.

3.0 Fehler beim compilieren der Beispiele

1)
/usr/bin/ld: cannot find -lXi
Xorg lib fehlt
apt-get install xorg-dev

2)
/usr/bin/ld: cannot find -lglut
glut lib fehlt
apt-get install glutg3-dev

3)
/usr/bin/ld: cannot find -lcuda
Diese Fehlermeldung hat mich eine ganz weile lang aufgehalten. Erstmal ueberpruefen ob die Datei libcuda.so ueberhaupt exitiert. Sie wird bei der Nvidia Treiber installation erstellt. Bei mir befindet sie sich unter

kater@tesla:~$ find /usr/ -iname "*libcuda.so*"
/usr/lib/libcuda.so.260.19.26
/usr/lib/libcuda.so.1
/usr/lib/libcuda.so
/usr/lib32/libcuda.so.260.19.26
/usr/lib32/libcuda.so.1
/usr/lib32/libcuda.so

Bei der letzten Installation war es noch
/usr/lib/nvidia

Ist die Datei da, kommt der Linkerfehler aber immer noch, liegt die Datei in einem Verzeichnis welches nicht vom Compiler durchsucht wird. Es sollte unter /etc/ld.so.conf.d/ eigentlich eine Datei Namens GL.conf existieren, in welcher das entsprechende /usr/lib/nvidia Verzeichnis steht. Wenn nicht, tragt es dort ein und führt ldconfig aus.

Alternativ kann man dem Compiler mit -L/usr/lib/nvidia das Verzeichnis mit geben.

4) undefinded reference - Fehler
Die bekam ich, als die *buntu Nvidia Treiber Version noch installiert war. Sie war zu alt.
Nehmt wirklich die neuste die auf der Cuda Downloadseite auch angeboten wird.

Powered by WordPress