Fehlerbehebung für JAX – TPU

Dieser Leitfaden enthält Verweise auf Informationen zur Fehlerbehebung für JAX, damit Sie Probleme erkennen und beheben können, die beim Trainieren von JAX-Modellen auf Cloud TPU auftreten können.

Eine allgemeinere Anleitung zum Einstieg in Cloud TPU finden Sie in der JAX-Kurzanleitung.

Allgemeine JAX-Probleme

Wenn bei der Entwicklung Ihres Trainingsmodells oder beim Training mit JAX Probleme auftreten, lesen Sie die FAQs zu JAX.

Allgemeinere Programmierfehler, die beim Schreiben einer Trainingsanwendung mit JAX auftreten können, finden Sie unter JAX-Fehler.

Profilerstellung für JAX-Leistung

Mithilfe der unter Profilerstellung für JAX-Leistung beschriebenen Tools können Sie nachvollziehen, wie Ihre TPU-Ressourcen genutzt werden.

Arbeitsspeicherprobleme beheben

Mit dem JAX Device Memory Profiler können Sie überwachen, wie der Arbeitsspeicher verwendet wird. Sie können dessen Verwendung jedoch nicht direkt verwalten.

Der JAX Device Memory Profiler kann verwendet werden, um:

Sie können nicht vorgeben, wie der TPU-Arbeitsspeicher für bestimmte Vorgänge zugewiesen wird. Weitere Informationen zu JAX-spezifischen TPU-Leistungsproblemen finden Sie unter Leistungshinweise zur Verwendung von TPUs mit JAX.

TPU-Probleme beheben

In den folgenden Abschnitten wird beschrieben, wie Sie einige häufige Probleme beheben können, die beim Ausführen eines JAX-Programms auf einer TPU auftreten können.

Wie kann ich prüfen, ob die TPU ausgeführt wird?

Alle Vorgänge werden auf der TPU ausgeführt, solange JAX nicht „No GPU/TPU found, falling back to CPU“ ausgibt.

Sie können prüfen, ob die TPU aktiv ist. Dazu rufen Sie jax.devices() auf und es sollten dann mehrere TPU-Geräte angezeigt werden. Oder Sie überprüfen dies programmatisch mithilfe von assert jax.devices()[0].platform == 'tpu'.

RuntimeError: Unable to initialize backend 'tpu': UNAVAILABLE: No TPU Platform available.

Es wird diese Laufzeitfehlermeldung oder die folgende Meldung auf der TPU-VM in /tmp/tpu_logs/tpu_driver.WARNING angezeigt: W1118 17:40:20.985243 23901 tpu_version_flag.cc:57] No hardware is found. Using default TPU version:xxxxxx. Beides kann darauf hinweisen, dass Sie die falsche TPU-VM-Version verwenden.

Prüfen Sie in diesem Fall, ob Sie die aktuelle JAX-Laufzeitversion verwenden, und versuchen Sie es noch einmal.

Fehlerbehebung bei TPU- und GKE-Problemen

Zur Fehlerbehebung können Sie im GKE-Arbeitslastmanifest das ausführliche Logging aktivieren und die Logs dann an den GKE-Support senden.

TPU_MIN_LOG_LEVEL=0 TF_CPP_MIN_LOG_LEVEL=0 TPU_STDERR_LOG_LEVEL=0

In den folgenden Abschnitten werden Fehlermeldungen im Zusammenhang mit TPU- und GKE-Einrichtungen sowie deren Lösungen beschrieben.

No endpoints available for service 'jobset-webhook-service'

Dieser Fehler bedeutet, dass das JobSet nicht richtig installiert wurde. Prüfen Sie, ob die Kubernetes-Pods für die jobset-controller-manager-Bereitstellung ausgeführt werden. Weitere Informationen finden Sie in der Dokumentation zur Fehlerbehebung für JobSet.

TPU initialization failed: Failed to connect

Die GKE-Knotenversion muss 1.30.4-gke.1348000 oder höher sein (GKE 1.31 wird nicht unterstützt).