Wie man NVIDIA-GPUs unter Ubuntu mit nvidia-smi überwacht und verwaltet

1. Einführung

Beim Einsatz einer GPU unter Ubuntu ist es wichtig, ihren Status genau zu überwachen. Dies ist besonders bei Workloads wie Deep Learning oder Grafik‑Rendering von Bedeutung, bei denen das Verständnis von GPU‑Auslastung und Treiberversionen zwingend erforderlich ist. In diesem Artikel erklären wir, wie man nvidia-smi, ein NVIDIA‑GPU‑Verwaltungstool, verwendet, und stellen Methoden zum Abrufen von GPU‑Informationen unter Ubuntu vor.

2. GPU‑Informationen mit nvidia-smi prüfen

nvidia-smi ist ein Befehlszeilen‑Tool, das es ermöglicht, Auslastung, Speichernutzung und weitere detaillierte Informationen zu NVIDIA‑GPUs zu überwachen. Es ist besonders nützlich, wenn man die GPU‑Aktivität in Echtzeit prüfen oder detaillierte Auslastungsmetriken abrufen möchte.

Grundlegende Verwendung

Sie können den folgenden Befehl verwenden, um die GPU‑Auslastung und Speichernutzung in Echtzeit zu überwachen:

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

Dieser Befehl liefert detaillierte Informationen, einschließlich GPU‑Auslastung, Speichernutzung und verfügbarem Speicher. Die Option -l ermöglicht das Festlegen des Aktualisierungsintervalls in Sekunden.

Anzeigeformat und Dateiausgabe

Standardmäßig werden die Ergebnisse in Tabellenform angezeigt, Sie können sie jedoch als CSV ausgeben, um die Weiterverarbeitung zu erleichtern. Wenn Sie die Informationen in einer Datei speichern möchten, geben Sie das Ziel mit der Option -f an.

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

Damit können Sie GPU‑Auslastungs‑Logs speichern und später analysieren.

3. Prozessinformationen mit nvidia-smi abrufen

nvidia-smi ermöglicht zudem das Abrufen von Informationen über Prozesse, die aktuell die GPU nutzen. So lässt sich ermitteln, wie viel GPU‑Ressourcen jeder Prozess verbraucht.

Prozessinformationen erhalten

Verwenden Sie den folgenden Befehl, um die PID und den Speicherverbrauch von Prozessen anzuzeigen, die die GPU nutzen:

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

Dieser Befehl gibt eine Liste aktiver GPU‑Prozesse zurück und zeigt den Speicherverbrauch jedes Prozesses an.

nvidia-smi‑Subbefehl pmon

Das nvidia-smi‑Tool enthält außerdem den Subbefehl pmon, der eine detaillierte GPU‑Prozessüberwachung bietet.

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

Damit werden GPU‑Prozessinformationen in festgelegten Intervallen angezeigt. Die Option --delay definiert das Aktualisierungsintervall in Sekunden, und Sie können auswählen, welche Informationen angezeigt werden sollen.

4. NVIDIA‑Treiber installieren und überprüfen

Um eine NVIDIA‑GPU unter Ubuntu zu nutzen, muss der passende NVIDIA‑Treiber installiert sein. Nachfolgend die Schritte zur Installation und Überprüfung.

Treiberinstallation

Installieren Sie zunächst den für Ihr System geeigneten NVIDIA‑Treiber mit folgendem Befehl:

sudo apt install nvidia-driver-510

Nach Abschluss der Installation starten Sie Ihr System neu.

Installation überprüfen

Nach dem Neustart führen Sie den folgenden Befehl aus, um zu bestätigen, dass der Treiber korrekt installiert ist:

nvidia-smi

Wenn die Treiberversion und die CUDA‑Version angezeigt werden, war die Installation erfolgreich.

5. GPU‑Funktionalität mit TensorFlow überprüfen

Sie können die GPU‑Funktionalität auch testen, indem Sie TensorFlow, ein Machine‑Learning‑Framework, verwenden.

Anaconda installieren

Zuerst Anaconda installieren und Ihre Umgebung einrichten:

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

GPU‑Erkennung in TensorFlow prüfen

Anschließend überprüfen, ob TensorFlow die GPU erkennt:

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

Wenn das GPU‑Gerät in der Liste erscheint, erkennt TensorFlow die GPU erfolgreich.

6. GPU‑Überwachung und Protokollierung

nvidia-smi ermöglicht die Echtzeit‑GPU‑Überwachung und das Aufzeichnen von Logs. Das hilft, die GPU‑Auslastung über die Zeit zu verfolgen und die Leistung zu optimieren.

Periodische Überwachung

Um periodische Überwachung einzurichten, verwenden Sie die Option -l, um das Aktualisierungsintervall festzulegen, und können optional Daten in eine Datei protokollieren:

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 über Python‑Bindings

nvidia-smi stellt Python‑Bindings (nvidia-ml-py) bereit, die es ermöglichen, GPU‑Informationen programmgesteuert abzurufen. Dies ermöglicht eine individuellere Überwachung und Steuerung aus Python‑Skripten.

7. Fazit

nvidia-smi ist ein leistungsstarkes Werkzeug zum Überprüfen und Verwalten der NVIDIA‑GPU‑Nutzung unter Ubuntu. Dieser Artikel erklärte die Grundnutzung, Prozessüberwachung, Treiberinstallation und TensorFlow‑GPU‑Verifizierung. Nutzen Sie diese Techniken, um die GPU‑Leistung zu maximieren und Ihr System zu optimieren.