ubuntuusers.de

Nvidia CUDA installieren

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

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ützte Grafikkarte 🇬🇧 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.

CUDA SDK DevKit installieren

Um NVIDIA Cuda auf Ubuntu nutzen zu können muss das entsprechende NVIDIA DevKit von den Ubuntu Paketquellen mittels

  • nvidia-cuda-dev

  • nvidia-cuda-toolkit

Paketliste zum Kopieren:

sudo apt-get install nvidia-cuda-dev  nvidia-cuda-toolkit 

Oder mit apturl installieren, Link: ,nvidia-cuda-toolkit

installiert werden [2][3][4].

Fremdpaket

Eine andere Möglichkeit besteht darin das entsprechende CUDA Developer Kit Paket direkt von der NVIDIA Entwickler Seite🇬🇧 ⮷ herunterzuladen und das DEB-Paket zu installieren.

Hinweis!

Fremdpakete können das System gefährden.


Anmerkung: Es wird empfohlen die von Ubuntu zur Verfügung gestellte und getestete Pakete und Treiber aus den offiziellen Paketquellen zu verwenden.

GPU Computing Toolkit installieren

Wenn man selbst Programme mit CUDA Unterstützung schreiben möchte, ist es nötig nebst CUDA zusätzlich auch das CUDA Toolkit zu installieren. Dazu wird von Nvidias Entwicklerseite 🇬🇧 die Installationsdatei heruntergeladen. Man sollte darauf achten, dass die Version des Toolkits mit dem Installierten Grafikkartentreiber kompatibel ist. Das kann anhand einer Tabelle in der Sektion Release Notes überprüft werden. Sollte noch kein Nvidia-Grafiktreiber installiert sein, ist es besser vor der CUDA-Installation über zusätzliche Treiber die neuste getestete Version zu installieren. Danach kann mit

sudo sh cuda_<VERSION>_linux.run 

das CUDA Toolkit als Nutzer installiert werden. Während der Installation wird man gefragt, ob der enthaltenen Grafiktreiber installiert werden soll. Hat man das schon vorher gemacht muss diese Option entfernt werden. Soll der Grafiktreiber jedoch installiert werden muss man sich zuvor ausloggen, ohne X Server (im Terminal) wieder einloggen und die Installation erneut starten (nicht empfohlen). Während der Installation wird das Verzeichnis /usr/local/cuda-9.0 als Standard vorgeschlagen, das nach Wunsch geändert werden kann (nicht empfohlen). Es sollte jedoch bedacht werden, um das Toolkit verwenden, müssen die Umgebungsvariablen $PATH und $LD_LIBRARY_PATH angepasst werden. Dazu fügt man folgende Zeilen am Ende der ~/.bashrc ein:

1
2
export PATH=$PATH:/usr/local/cuda-<VERSION>/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-<VERSION>/lib64

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

Paketliste zum Kopieren:

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

Oder mit apturl installieren, Link: apt://build-essential,freeglut3-dev,libgl1-mesa-glx,libglu1-mesa-dev,libx11-dev,libxi-dev,libxmu-dev

Ist die Installation abgeschlossen, kann man in einem Terminal in den CUDA-Beispiele Ordner wechsel und die Installation testen.

1
2
3
cd ~/NVIDIA_CUDA-<VERSION>_SAMPLES/0_Simple/simpleLayeredTexture
make
./simpleLayeredTexture

In den Ausgaben finden sich Informationen zur Hardware und Ausführungszeit des Programms.

Ab hier für alte Version des CUDA SDK

Das CUDA Toolkit hat das CUDA-SDK abgelöst und steht auf der Downloadseite von Nvidia nicht mehr zur Verfügung. Sollten man das SDK jedoch (aus irgend einem Grund) installieren ist der folgende Abschnitt wichtig.

Leider sind die von Nvidia mitgelieferten Makefiles fehlerhaft. Es muss z.B. die Reihenfolge von $(RENDERCHECKGLLIB) und ${OPENGLLIB} angepasst werden.

 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.

Eine Übersicht über die Grafikkarte und CUDA bietet

./deviceQuery 

Diese Revision wurde am 6. März 2020 10:47 von wentz89 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Grafikkarten, unfreie Software, Hardware, Programmierung