Softwareversionen auf der Cloud TPU ändern

Übersicht

Die Softwareversion des Frameworks, das auf Ihrer TPU ausgeführt wird, muss mit der Version übereinstimmen, die auf Ihrer lokalen VM ausgeführt wird. Diese Softwareversion kann jetzt auf einer laufenden Cloud TPU gewechselt werden, ohne die TPU zu löschen und neu zu erstellen. Außerdem können Sie damit die Cloud TPU mit bestimmten nächtlichen Versionen von Software-Frameworks konfigurieren. Es wird dennoch empfohlen, eine unterstützte Version dieser Frameworks auszuwählen.

Nutzung

Die empfohlene Methode zum Wechseln zwischen Versionen ist die Python-Bibliothek cloud-tpu-client.

Anwendungsbeispiel für TensorFlow.

import tensorflow as tf
from cloud_tpu_client import Client

c = Client()
c.configure_tpu_version(tf.__version__, restart_type='ifNeeded')

Dadurch wird die Cloud TPU so konfiguriert, dass sie der TensorFlow-Version entspricht, die auf Ihrer lokalen VM ausgeführt wird. Dies umfasst offizielle Releases sowie datumsbasierte Build-Builds.

Der Parameter restart_type der configure_tpu_version API definiert das TPU-Neustartverhalten beim Versionswechsel. Die Optionen sind "always" (Standardeinstellung) und "ifNeeded".

  • "Immer" kann verwendet werden, um eine TPU mit dem Status UNHEALTHY_TENSORFLOW zu beheben oder Fehler wegen Out-of-Memory-Fehlern (OOM) aufgrund von gehackten Ressourcen von einer vorherigen Ausführung zurückzugeben. Wenn diese Option festgelegt ist, wird die TPU neu gestartet, auch wenn keine neue Framework-Version installiert ist.

  • "ifNeeded" kann nützlich sein, da die Laufzeit nicht neu gestartet wird, wenn sie sich bereits in der richtigen Version befindet, wodurch eine längere Startzeit nicht zu einem Trainingsskript hinzugefügt wird. Wenn diese Option festgelegt ist, wird die TPU nur dann neu gestartet, wenn nicht die richtige Framework-Version installiert ist.

Die Bibliothek kommuniziert direkt mit Cloud TPU. Daher muss dieser Code in einer VM im selben Netzwerk ausgeführt werden. Es wird empfohlen, diese für den Rest Ihres Modells im Code auszuführen.

Zusätzliche Softwareoptionen

TensorFlow enthält einen tf.__version__-String, der die einfachste Möglichkeit zur Konfiguration der richtigen Version ist. Weitere Softwareoptionen:

  • PyTorch - pytorch-0.1, pytorch-0.5-dev20200320, pytorch-nightly
  • Jax - tpu_driver, tpu_driver0.1-dev20200320, tpu_driver_nightly

So konfigurieren Sie zum Beispiel eine TPU so, dass sie mit dem neuesten Nightly Build von PyTorch ausgeführt wird:

from cloud_tpu_client import Client
c = Client()
c.configure_tpu_version('pytorch-nightly', restart_type='ifNeeded')
c.wait_for_healthy()