HOWTO · TensorFlow
Überprüfen Sie, ob TensorFlow GPU verwendet
Prüfen Sie, ob TensorFlow eine GPU erkennt, wie die Geräteliste zu interpretieren ist und was Sie bei einer leeren Liste untersuchen sollten.
Auf dieser Seite
Um zu prüfen, ob TensorFlow eine GPU erkennt, fragen Sie die physischen Geräte im selben Python-Prozess, Interpreter, in derselben Umgebung und mit derselben Startkonfiguration wie in Ihrer Anwendung ab. Ein separates Terminal oder Notebook kann eine andere TensorFlow-Installation verwenden; dessen Ergebnis muss daher nicht für Ihre Anwendung gelten.
Prüfen, ob TensorFlow eine GPU verwendet
Führen Sie dieses Beispiel in der Python-Umgebung Ihrer Anwendung aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
import importlib.util
if importlib.util.find_spec("tensorflow") is None:
print("TensorFlow is not installed in this Python environment.")
else:
import tensorflow as tf
devices = tf.config.list_physical_devices("GPU")
print("TensorFlow GPU devices:", devices)
TensorFlow is not installed in this Python environment.
Wenn TensorFlow installiert ist, bedeutet eine nicht leere Liste, dass dieser Prozess ein oder mehrere GPU-Geräte erkannt hat. Eine leere Liste bedeutet, dass er keine erkannt hat. Aus der Liste geht nicht hervor, warum ein Gerät fehlt. Außerdem beweist die Sichtbarkeit allein nicht, dass ein bestimmtes Modell oder ein bestimmter Vorgang auf der GPU ausgeführt wurde. Die oben angezeigte Meldung bedeutet, dass im aktiven Python-Environment kein TensorFlow-Paket installiert ist. Installieren Sie TensorFlow in der von Ihrer Anwendung verwendeten Umgebung oder wählen Sie diese Umgebung aus und führen Sie die Prüfung erneut aus.
Führen Sie die Prüfung über denselben Einstiegspunkt aus wie Ihre Anwendung. Vergewissern Sie sich in einem Notebook, dass der richtige Kernel ausgewählt ist. Bei einem Dienst oder Container führen Sie die Prüfung mit dessen Umgebung und Konfiguration aus. So lässt sich ein Problem bei der Geräteerkennung von Unterschieden zwischen Python-Umgebungen unterscheiden.
Wenn TensorFlow eine GPU auflistet, Sie aber prüfen möchten, auf welchem Gerät ein bestimmter Vorgang ausgeführt wird, führen Sie einen repräsentativen Vorgang in derselben Anwendungsumgebung aus und prüfen Sie sowohl die Platzierungsmeldungen als auch result.device. Dieses Beispiel fordert für eine Matrixmultiplikation /GPU:0 an. Passen Sie den Vorgang und die Eingaben an Ihre Arbeitslast an.
import importlib.util
if importlib.util.find_spec("tensorflow") is None:
print("TensorFlow is not installed in this Python environment.")
else:
import tensorflow as tf
tf.debugging.set_log_device_placement(True)
with tf.device("/GPU:0"):
result = tf.matmul(tf.ones((2, 2)), tf.ones((2, 2)))
print("Result device:", result.device)
In der bereitgestellten Laufzeitumgebung ist TensorFlow nicht installiert. Deshalb kann sie für dieses TensorFlow-abhängige Beispiel keine Ausgabe zur Geräteplatzierung anzeigen. Auf einem entsprechend eingerichteten Rechner zeigen die Platzierungsmeldungen und result.device, was bei diesem Vorgang passiert ist. Die genauen Gerätenamen hängen vom Build und der Hardware ab. Eine Geräteanforderung allein beweist weder, dass der Vorgang noch dass jeder Vorgang eines Modells auf der GPU ausgeführt wurde.
Die GPU-Unterstützung hängt von der TensorFlow-Distribution, dem Betriebssystem, der Hardware, dem Treiber und den installierten Abhängigkeiten ab. Es gibt keinen einzelnen Einrichtungsbefehl, der für jeden Rechner gilt. In der offiziellen TensorFlow-Installationsanleitung finden Sie den unterstützten Installationsweg für Ihre Plattform und Distribution. Ein Backend-Name wie DirectML zeigt für sich genommen nicht, dass dieser Prozess eine GPU erkannt hat. Prüfen Sie die aktuelle Dokumentation des jeweiligen Backends und Pakets, bevor Sie Versionen oder Treiber ändern. Dieser Leitfaden macht keine Kompatibilitätsaussagen zu bestimmten Backend-Hardware-Kombinationen.
Wenn die Geräteliste leer ist, prüfen Sie der Reihe nach:
- Vergewissern Sie sich, dass der aktive Interpreter, die virtuelle Umgebung oder der Notebook-Kernel der Umgebung entspricht, die Ihre Anwendung verwendet.
- Prüfen Sie, welche TensorFlow-Distribution dort installiert ist, und befolgen Sie deren offizielle Installationshinweise zur GPU-Unterstützung auf Ihrer Plattform. Eine Distribution ohne GPU-Unterstützung stellt kein GPU-Gerät bereit.
- Prüfen Sie, ob das Betriebssystem und gegebenenfalls der Container die GPU erkennen. Ein Container benötigt außerdem Zugriff auf die GPU des Hostsystems und kompatible Treiberunterstützung.
- Prüfen Sie den Herstellertreiber und die Abhängigkeiten, die für die ausgewählte TensorFlow-Distribution oder das Backend erforderlich sind. Starten Sie den Python-Prozess nach Änderungen an der Umgebung neu und fragen Sie die Geräte anschließend erneut ab.
Wenn TensorFlow eine GPU erkennt, Ihr Vorgang aber die CPU verwendet, aktivieren Sie die Platzierungsprotokollierung für diesen Vorgang und prüfen Sie das verwendete Gerät. So können Sie die Geräteerkennung von der Platzierung des Vorgangs unterscheiden und gezielt weiter untersuchen.