ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

Nvidia CUDA installieren

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

CUDA ist eine Technik ähnlich wie OpenCL, welche es erlaubt, Berechnungen auf Nvidia-Grafikkarten durchzuführen. Je nach Aufgabenstellungen kann so eine deutliche Geschwindigkeitssteigerung erzielt werden.

Voraussetzungen

Damit CUDA genutzt werden kann ist eine unterstütze Grafikkarte {en} mit aktuellem proprietären Nvidia-Treiber nötig. Notebooks mit Optimus-Technologie können ebenfalls von CUDA profitieren, falls ihre zweite Grafikkarte unterstützt wird. Bumblebee, die Software, welche die Optimus-Grafiklösung auch unter Linux ermöglicht, ist dabei nicht zwingend für CUDA. Es muss aber auch in diesem Fall ein aktueller Grafikkartentreiber von Nvidia installiert sein.

CUDA installieren

Zuerst muss die Installationsdatei direkt von Nvidias Entwicklerseite {en} als 32bit oder 64bit-Version heruntergeladen werden. Zur Zeit wird die Version 4.2.9 angeboten, welche aber nur für Ubuntu Oneiric 11.10 verfügbar ist (Stand August 2012). Diese Version lässt sich problemlos auch unter Ubuntu Precise 12.04 installieren. Nach dem Herunterladen wird die Datei ausführbar gemacht[1] und mit

sudo ./cudatoolkit_* 

installiert[2][3][4]. Während der Installation wird man gefragt, in welches Verzeichnis CUDA installiert werden soll. Dieser Artikel geht davon aus, dass das vorgeschlagene Standard-Verzeichnis /usr/local/cuda gewählt wird.

Nach erfolgreicher Installation ist es nötig folgende Zeilen

1
2
3
export PATH=${PATH}:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib:/usr/local/cuda/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-current:/usr/lib32/nvidia-current

in die Datei ~/.bashrc im Homeverzeichnis zu schreiben[5]. Nachdem alle Terminalfenster geschlossen sind ist die Installation von CUDA beendet und entsprechende Programme mit CUDA/OpenCL Unterstützung können von nun an Berechnungen auf die Grafikkarte auslagern.

Hinweis:

Achtung! Bei Nvidia Optimus Laptops sollte die Zeile export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-current:/usr/lib32/nvidia-current nicht in die .bashrc geschrieben werden, da die Intel GPU sonst keine direkte Hardwarebeschleunigung mehr bietet. Alternativ vor dem Ausführen einer CUDA Applikation im selben Terminal den Pfad setzen.

GPU Computing SDK installieren

Wenn man selbst Programme mit CUDA Unterstützung schreiben möchte, ist es nötig nebst CUDA zusätzlich auch das SDK zu installieren. Dazu wird wieder von Nvidias Entwicklerseite {en} die Installationsdatei heruntergeladen, ausführbar gemacht und danach mit

./gpucomputingsdk_* 

als Nutzer installiert. Während der Installation wird das Verzeichnis ~/NVIDIA_GPU_Computing_SDK als Standard vorgeschlagen, das nach Wunsch geändert werden kann. Um auch die Beispiels-Dateien kompilieren zu können, sind folgende Pakete nötig[6]:

  • build-essential

  • freeglut3-dev

  • libgl1-mesa-glx

  • libglu1-mesa-dev

  • libx11-dev

  • libxi-dev

  • libxmu-dev

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install build-essential freeglut3-dev libgl1-mesa-glx libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev 

sudo aptitude install build-essential freeglut3-dev libgl1-mesa-glx libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev 

Leider sind die von Nvidia mitgelieferten Makefiles fehlerhaft. Es muss z.B. die Reihenfolge von $(RENDERCHECKGLLIB) und ${OPENGLLIB} angepasst werden. Glücklicherweise gibt es einen Blogeintrag {en} mit einem passenden Skript.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
if [ ! -f cudpp_license.txt ] ; then
  echo "Dieses Skript muss im SDK-Hauptordner ausgeführt werden!"
  exit
fi
echo "Nvidia Makefiles werden korrigiert..."
sed -i- 's/\${OPENGLLIB} \$(PARAMGLLIB) \$(RENDERCHECKGLLIB)/$(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB)/' $(find . -type f -print0 | xargs -0 grep -l '${OPENGLLIB} $(PARAMGLLIB) $(RENDERCHECKGLLIB)')
sed -i- 's/\$(CXX) \$(INC) \$(LIB) -o \(.*\)$/$(CXX) \$(INC) -o \1 $(LIB)/' $(find . -type f -print0 | xargs -0 grep -l '$(CXX) $(INC) $(LIB)')
if ! grep USERENDERCHECKGL CUDALibraries/src/randomFog/Makefile ; then
  sed -i- '/USEGLUT := 1/ a \USERENDERCHECKGL := 1' CUDALibraries/src/randomFog/Makefile
fi

Dieses Skript wird in die Datei ~/NVIDIA_GPU_Computing_SDK/makefiles-korrigieren.sh abgespeichert, ausführbar gemacht und mit

./makefiles-korrigieren.sh 

ausgeführt. Nach erfolgreichem Korrigieren der Makefiles wird in den Unterordner C gewechselt und der Kompiliervorgang[7] gestartet. Dieser kann einige Zeit in Anspruch nehmen.

cd ~/NVIDIA_GPU_Computing_SDK/C
make 

Funktionstest

Nach erfolgreichem Kompilieren wird zum Testen in den Unterordner release gewechselt.

cd ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release 

Die Installation von Treibern, CUDA und SDK und das Kompilieren der Beispieldateien waren erfolgreich, wenn z.B.

./boxFilter 

ein Bild von Lenna anzeigt. Besitzer von Optimus-Notebooks und installiertem Bumblebee starten die Programme mit

optirun ./boxFilter 

Eine Übersicht über die Grafikkarte und CUDA bietet

./deviceQuery 

  • PyCUDA {en} Projektseite, Phython-Oberfläche zur GPU-Programmierung (ab Ubuntu 12.10 in den Paketquellen)

ubuntuusers.local › WikiNvidia CUDA installieren