Ubuntu GPU-Überprüfungsleitfaden – Verwendung und Einrichtung von nvidia-smi

1. Einführung

Wenn Sie eine GPU unter Ubuntu nutzen, ist es wichtig, ihren Status genau zu überprüfen. Besonders bei Aufgaben wie Deep Learning oder Grafik-Rendering ist es unerlässlich, die GPU-Auslastung und die Treiberversion zu kennen. In diesem Artikel wird die Verwendung des NVIDIA GPU-Management-Tools nvidia-smi erklärt und gezeigt, wie Sie die GPU unter Ubuntu überprüfen können.

2. GPU-Informationen mit nvidia-smi abrufen

nvidia-smi ist ein Befehlszeilen-Tool zur Überwachung der Nutzung und des Speicherverbrauchs von NVIDIA-GPUs. Es ist besonders nützlich, um den GPU-Status in Echtzeit zu überwachen und detaillierte Nutzungsinformationen zu erhalten.

Grundlegende Nutzung

Mit folgendem Befehl können Sie die GPU-Auslastung und den Speicherverbrauch in Echtzeit überwachen:

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1

Dieser Befehl liefert detaillierte Informationen zur GPU-Auslastung, zum verwendeten Speicher und zum verfügbaren Speicher. Mit der Option -l kann das Aktualisierungsintervall in Sekunden festgelegt werden.

Ausgabeformat und Dateispeicherung

Standardmäßig wird die Ausgabe im Tabellenformat angezeigt, aber es ist auch möglich, die Daten im CSV-Format auszugeben, um sie einfacher weiterzuverarbeiten. Wenn Sie die Informationen in einer Datei speichern möchten, können Sie mit der Option -f den Dateipfad angeben.

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv

Mit dieser Methode können Sie die GPU-Nutzung als Protokoll speichern und später analysieren.


3. Prozessinformationen mit nvidia-smi abrufen

Mit nvidia-smi können Sie herausfinden, welche Prozesse derzeit die GPU nutzen. So können Sie feststellen, welche Anwendungen wie viele GPU-Ressourcen verwenden.

Prozessinformationen abrufen

Mit folgendem Befehl können Sie die Prozess-ID (PID) und den Speicherverbrauch der Prozesse, die die GPU nutzen, anzeigen lassen:

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader

Dieser Befehl gibt eine Liste der aktuell laufenden GPU-Prozesse zurück und zeigt den Speicherverbrauch jedes Prozesses an.

nvidia-smi pmon Unterbefehl

nvidia-smi bietet den Unterbefehl pmon, mit dem detaillierte Informationen zu GPU-Prozessen abgerufen werden können.

nvidia-smi pmon --delay 10 -s u -o DT

Dieser Befehl zeigt Prozessinformationen für die GPU in festgelegten Intervallen an. Die Option --delay legt das Aktualisierungsintervall in Sekunden fest. Außerdem kann die Art der angezeigten Informationen angepasst werden.

4. Installation und Überprüfung des NVIDIA-Treibers

Um eine NVIDIA-GPU unter Ubuntu zu verwenden, muss der entsprechende NVIDIA-Treiber installiert sein. Im Folgenden wird die Installation und Überprüfung des Treibers beschrieben.

Installation des Treibers

Zunächst muss der passende NVIDIA-Treiber für das System installiert werden. Mit folgendem Befehl kann der empfohlene Treiber installiert werden:

sudo apt install nvidia-driver-510

Nach Abschluss der Installation sollte das System neu gestartet werden.

Überprüfung der Installation

Nach dem Neustart können Sie überprüfen, ob der Treiber korrekt installiert wurde, indem Sie folgenden Befehl ausführen:

nvidia-smi

Wenn die Treiberversion und die CUDA-Version angezeigt werden, wurde der Treiber erfolgreich installiert.


5. Überprüfung der GPU-Funktion mit TensorFlow

Um zu testen, ob die GPU ordnungsgemäß funktioniert, kann das maschinelle Lern-Framework TensorFlow verwendet werden.

Installation von Anaconda

Zunächst wird Anaconda installiert, um eine geeignete Umgebung einzurichten.

bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1

Überprüfung der GPU-Nutzung mit TensorFlow

Anschließend kann überprüft werden, ob TensorFlow die GPU erkennt.

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Wenn in der Ausgabe eine GPU aufgelistet wird, erkennt TensorFlow die GPU korrekt.

6. GPU-Monitoring und Protokollierung

Mit nvidia-smi kann die GPU-Nutzung in Echtzeit überwacht und protokolliert werden. Dies ermöglicht die langfristige Verfolgung der GPU-Auslastung und hilft bei der Leistungsoptimierung.

Regelmäßiges Monitoring

Für eine regelmäßige Überwachung kann mit der Option -l das Aktualisierungsintervall festgelegt und die Ausgabe in eine Datei gespeichert werden.

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log

Programmierbare Steuerung mit Python-Bindings

nvidia-smi verfügt über Python-Bindings (nvidia-ml-py), die es ermöglichen, GPU-Informationen programmgesteuert mit Python abzurufen. Dies erlaubt eine individuelle Überwachung und Steuerung.


7. Fazit

nvidia-smi ist ein leistungsstarkes Tool zur Überwachung und Verwaltung von NVIDIA-GPUs unter Ubuntu. In diesem Artikel wurden die grundlegende Nutzung von nvidia-smi, das Abrufen von Prozessinformationen, die Treiberinstallation und die Überprüfung der GPU-Funktion mit TensorFlow behandelt. Nutzen Sie dieses Wissen, um die GPU-Leistung zu maximieren und Ihr System zu optimieren.

侍エンジニア塾