Softwareversionen auf 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 ausgeführten Cloud TPU aktiviert werden, ohne die TPU löschen und neu erstellen zu müssen. Dies ermöglicht auch die Konfiguration der Cloud TPU mit bestimmten Nightly-Versionen von Software-Frameworks. Es wird dennoch empfohlen, eine unterstützte Version dieser Frameworks auszuwählen.

Nutzung

Die empfohlene Methode zum Versionswechsel ist die Verwendung der Python-Bibliothek cloud-tpu-client.

Anwendungsbeispiel für TensorFlow.

from cloud_tpu_client import Client
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--tpu-name',
                    type=str,
                    required=True,
                    help='Name of the TPU Instance')
parser.add_argument('--target-version',
                    type=str,
                    required=True,
                    help='target TPU Runtime version')

args = parser.parse_args()

c = Client(args.tpu_name)
c.configure_tpu_version(args.target_version, restart_type='ifNeeded')
c.wait_for_healthy()

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

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

  • "always" kann verwendet werden, um eine TPU zu beheben, die z. B. den Status UNHEALTHY_TENSORFLOW hat oder die aufgrund von gehackten Ressourcen aus einer vorherigen Ausführung OOM-Fehler ("Out Of Memory") bei nicht ausreichendem Arbeitsspeicher zurückgibt. Wenn diese Option festgelegt ist, wird die TPU auch dann neu gestartet, wenn keine neue Framework-Version installiert ist.

  • "ifRequireded" kann nützlich sein, da die Laufzeit nicht neu gestartet wird, wenn sie bereits in der richtigen Version ist. Daher wird einem Trainingsskript keine signifikante Startzeit hinzugefügt. Wenn diese Option festgelegt ist, wird die TPU nur neu gestartet, wenn nicht die richtige Framework-Version installiert ist.

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

Zusätzliche Softwareoptionen

TensorFlow enthält einen tf.__version__ - String, der die einfachste Möglichkeit zum Konfigurieren der richtigen Version darstellt. 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()