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 die Pakete 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 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 🇬🇧 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

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 die Pakete installieren. Link: apt://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.

 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 23. April 2019 20:29 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Grafikkarten, unfreie Software, Hardware, Programmierung