Linux Grundlagen

GPU Auslastung in Echtzeit überwachen – Vollständiger Guide

GPU Auslastung in Echtzeit überwachen – Vollständiger Guide

Einleitung

Die Überwachung der GPU-Auslastung in Echtzeit ist essentiell für jeden, der grafische Berechnungen, maschinelles Lernen oder Mining-Anwendungen auf Linux-Systemen betreibt. Ohne eine kontinuierliche Überwachung der GPU-Performance können Sie nicht erkennen, ob Ihre Hardware optimal genutzt wird oder ob Engpässe die Leistung beeinträchtigen.

In diesem umfassenden Tutorial lernen Sie verschiedene Methoden kennen, um die GPU-Auslastung Ihres NVIDIA-basierten Systems zu überwachen. Wir behandeln sowohl einfache Kommandozeilen-Tools als auch erweiterte Dashboard-Lösungen, die Ihnen detaillierte Einblicke in die GPU-Performance geben.

Die GPU-Überwachung hilft Ihnen dabei, Probleme frühzeitig zu erkennen, die Systemleistung zu optimieren und sicherzustellen, dass Ihre teuren Grafikkarten effizient genutzt werden. Besonders bei rechenintensiven Aufgaben wie Deep Learning oder 3D-Rendering ist eine kontinuierliche Überwachung unverzichtbar.

Voraussetzungen

Bevor Sie mit der GPU-Überwachung beginnen können, müssen bestimmte Grundvoraussetzungen erfüllt sein:

  • Ein Linux-System (Ubuntu, CentOS, oder andere Distributionen)
  • Eine NVIDIA-Grafikkarte (GTX, RTX oder Quadro Serie)
  • Installierte NVIDIA-Treiber (Version 396 oder höher empfohlen)
  • Root- oder Sudo-Berechtigung für die Installation zusätzlicher Tools
  • Grundlegende Kenntnisse der Linux-Kommandozeile

Überprüfen Sie zunächst, ob Ihre NVIDIA-Treiber korrekt installiert sind:

nvidia-smi

Wenn dieser Befehl erfolgreich ausgeführt wird und Informationen über Ihre GPU anzeigt, sind die Grundvoraussetzungen erfüllt. Falls nicht, müssen Sie zuerst die entsprechenden NVIDIA-Treiber für Ihr System installieren.

Schritt-für-Schritt Anleitung

Grundlegende GPU-Überwachung mit nvidia-smi

Das wichtigste Tool für die GPU-Überwachung unter Linux ist nvidia-smi (NVIDIA System Management Interface). Dieses Kommandozeilen-Tool ist standardmäßig mit den NVIDIA-Treibern installiert und bietet umfassende Informationen über Ihre Grafikkarte.

Für eine einmalige Abfrage der GPU-Informationen verwenden Sie:

nvidia-smi

Um die GPU-Auslastung kontinuierlich zu überwachen, nutzen Sie den Loop-Parameter:

nvidia-smi --loop=1

Dieser Befehl aktualisiert die Anzeige jede Sekunde und zeigt Ihnen folgende wichtige Informationen:

  • GPU-Temperatur in Celsius
  • Stromverbrauch in Watt
  • Speicherauslastung (verwendet/verfügbar)
  • GPU-Auslastung in Prozent
  • Laufende Prozesse und deren Speicherverbrauch

Prozess-spezifische Überwachung

Um herauszufinden, welche Prozesse Ihre GPU nutzen, verwenden Sie den Process Monitoring Modus:

nvidia-smi pmon -s um

Dieser Befehl zeigt Ihnen für jeden GPU-nutzenden Prozess die Auslastung des Grafikprozessors und des Speichers an. Die Parameter bedeuten:

  • -s u: Zeigt GPU-Utilization an
  • -s m: Zeigt Memory-Utilization an

Installation und Verwendung von nvtop

Für eine benutzerfreundlichere Oberfläche installieren Sie nvtop, ein interaktives GPU-Monitoring-Tool ähnlich wie htop für CPUs:

sudo apt update
sudo apt install nvtop

Starten Sie nvtop einfach mit:

nvtop

nvtop bietet Ihnen eine farbige, interaktive Benutzeroberfläche mit Verlaufsdiagrammen und detaillierten Prozessinformationen. Sie können durch die verschiedenen GPUs navigieren und Prozesse nach Bedarf sortieren.

Verwendung von gpustat für kompakte Übersicht

Installieren Sie gpustat für eine kompakte, einzeilige GPU-Statusanzeige:

pip install gpustat

Verwenden Sie gpustat für kontinuierliche Überwachung:

watch -n 1 gpustat

Dies zeigt eine kompakte Übersicht aller GPUs mit Temperatur, Speichernutzung und laufenden Prozessen.

Erweiterte Monitoring-Optionen

Für detailliertere Informationen können Sie nvidia-smi mit verschiedenen Parametern verwenden:

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

Dieser Befehl gibt die Daten im CSV-Format aus, was für die Weiterverarbeitung oder Protokollierung nützlich ist.

Automatische Protokollierung einrichten

Um GPU-Metriken automatisch zu protokollieren, erstellen Sie ein einfaches Skript:

#!/bin/bash
while true; do
    echo "$(date): $(nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader,nounits)" >> gpu_log.txt
    sleep 5
done

Speichern Sie dieses Skript als gpu_monitor.sh, machen Sie es ausführbar und starten Sie es:

chmod +x gpu_monitor.sh
nohup ./gpu_monitor.sh &

Überprüfung

Nach der Einrichtung der GPU-Überwachung sollten Sie die Funktionalität überprüfen:

Test der Grundfunktionen

Führen Sie zunächst einen einfachen Test durch:

nvidia-smi -q -d UTILIZATION

Dieser Befehl sollte detaillierte Informationen über die GPU-Auslastung anzeigen.

Belastungstest durchführen

Um zu überprüfen, ob Ihre Überwachung korrekt funktioniert, führen Sie einen GPU-Belastungstest durch. Installieren Sie dazu gpu-burn:

git clone https://github.com/wilicc/gpu-burn
cd gpu-burn
make

Starten Sie den Test in einem Terminal:

./gpu_burn 60

In einem zweiten Terminal überwachen Sie die GPU-Auslastung:

nvidia-smi --loop=1

Sie sollten nun eine hohe GPU-Auslastung (nahe 100%) und steigende Temperaturen beobachten können.

Troubleshooting

nvidia-smi funktioniert nicht

Falls nvidia-smi nicht verfügbar ist oder Fehler meldet:

  • Überprüfen Sie, ob NVIDIA-Treiber installiert sind: lsmod | grep nvidia
  • Installieren Sie die neuesten Treiber über den Paketmanager oder von der NVIDIA-Website
  • Starten Sie das System nach der Treiberinstallation neu

Keine GPU-Prozesse sichtbar

Wenn keine GPU-nutzenden Prozesse angezeigt werden:

  • Stellen Sie sicher, dass tatsächlich GPU-intensive Anwendungen laufen
  • Überprüfen Sie, ob die Anwendungen CUDA oder OpenCL verwenden
  • Verwenden Sie nvidia-smi pmon -i 0 für spezifische GPU-Überwachung

Berechtigungsprobleme

Bei Berechtigungsproblemen:

  • Fügen Sie Ihren Benutzer zur Gruppe video hinzu: sudo usermod -a -G video $USER
  • Melden Sie sich ab und wieder an
  • Verwenden Sie sudo für administrative Befehle

nvtop Installation schlägt fehl

Falls nvtop nicht über den Paketmanager verfügbar ist:

sudo apt install cmake libncurses5-dev libncursesw5-dev git
git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True
make
sudo make install

Fazit

Die Überwachung der GPU-Auslastung in Echtzeit ist ein kritischer Aspekt für die optimale Nutzung Ihrer Hardware-Ressourcen. Mit den in diesem Tutorial vorgestellten Tools und Techniken haben Sie ein umfassendes Arsenal zur Verfügung, um Ihre NVIDIA-GPUs effektiv zu überwachen.

Das grundlegende nvidia-smi Tool bietet Ihnen schnellen Zugriff auf alle wichtigen GPU-Metriken, während erweiterte Tools wie nvtop und gpustat eine benutzerfreundlichere Darstellung ermöglichen. Die automatische Protokollierung hilft Ihnen dabei, langfristige Trends zu erkennen und Performance-Probleme zu identifizieren.

Denken Sie daran, dass die GPU-Überwachung nicht nur aus der reinen Auslastung besteht. Temperatur, Speichernutzung und Stromverbrauch sind gleichermaßen wichtige Indikatoren für die Gesundheit und Effizienz Ihres Systems. Regelmäßige Überwachung hilft Ihnen dabei, Hardware-Probleme frühzeitig zu erkennen und die Lebensdauer Ihrer GPU zu verlängern.

Mit diesem Wissen sind Sie nun in der Lage, Ihre GPU-Ressourcen optimal zu überwachen und zu verwalten, was besonders bei rechenintensiven Anwendungen wie maschinellem Lernen, wissenschaftlichen Berechnungen oder Content-Erstellung von entscheidender Bedeutung ist.