TPUs auf Abruf

TPUs auf Abruf kosten deutlich weniger als nicht auf Abruf verfügbare TPUs. Der Cloud TPU-Dienst kann diese Knoten jederzeit vorzeitig beenden (herunterfahren), wenn er zusätzliche TPU-Ressourcen benötigt.

Wenn Sie eine TPU-VM auf Abruf erstellen, verwenden Sie den Befehl gcloud. Wenn Sie einen TPU-Knoten auf Abruf erstellen, können Sie den Befehl gcloud oder die Console verwenden. Informationen zu den Unterschieden zwischen TPU-VMs und TPU-Knoten finden Sie unter Systemarchitektur.

TPU VM auf Abruf erstellen

gcloud

$ gcloud compute tpus tpu-vm create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.16.1-pjrt \
  --preemptible
  

Dabei gilt:

  • demo-tpu ist ein Name für die TPU.
  • --accelerator-type gibt den TPU-Typ an.
  • --version gibt die Version der TPU-VM-Software an, die installiert werden soll.
  • --preemptible ermöglicht ein vorzeitiges Beenden der TPU.

TPU-Knoten auf Abruf erstellen

Console

  1. Rufen Sie die TPU-Seite auf der Hauptseite von Compute Engine auf.
  2. Klicken Sie auf TPU-KNOTEN ERSTELLEN, um die Seite zur Erstellung eines TPU-Knotens zu öffnen.
  3. Geben Sie einen Namen für den TPU-Knoten ein.
  4. Wählen Sie die Zone aus, in der der TPU-Knoten erstellt werden soll.
  5. Wählen Sie einen TPU-Typ für Ihren TPU-Knoten aus.
  6. Klicken Sie auf Abrufbarkeit für diesen Knoten aktivieren, um für den TPU-Knoten "auf Abruf" einzustellen.
  7. Wählen Sie die TensorFlow- oder PyTorch-Version aus, die auf Ihrer VM installiert werden soll.

gcloud

$ gcloud compute tpus execution-groups create \
  --name=demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --tf-version=2.12.0 \
  --preemptible
  

Dabei gilt:

  • demo-tpu ist ein Name für die TPU.
  • "--accelerator-type" gibt den TPU-Typ an.
  • --tf-version gibt die Version von Tensorflow oder PyTorch an, die auf Ihrer VM installiert werden soll.
  • --preemptible ermöglicht ein vorzeitiges Beenden der TPU.

Bei TPU-Knoten ist der "auf Abruf"-Status einer TPU unabhängig vom "Auf Abruf"-Status Ihrer VM-Instanz.

Preise und Kontingente für TPUs auf Abruf

Die Preise für präemptive TPUs sind deutlich niedriger als für normale TPUs. Weitere Informationen finden Sie auf der Preisseite. Für TPUs, die in der ersten Minute nach dem Erstellen wieder beendet werden, fallen keine Gebühren an.

Das Kontingent für präemptive TPUs ist im Allgemeinen höher und vom Kontingent für normale TPUs unabhängig. Weitere Informationen finden Sie auf der Kontingentseite.

Erkennen, ob eine TPU vorzeitig beendet wurde

Mit dem folgenden gcloud-Befehl prüfen Sie, ob der Cloud TPU-Dienst Ihre TPU vorzeitig beendet hat:

Listen Sie Ihre verfügbaren TPUs auf:

TPU-VM

gcloud compute tpus tpu-vm list --zone=us-central1-b

TPU-Knoten

(vm)$ gcloud compute tpus list --zone=us-central1-b

In der Ausgabe des Befehls werden die Details der in Ihrem Projekt erstellten TPUs angezeigt. Wenn die TPU vorzeitig beendet wurde, ändert sich der Status von READY in PREEMPTED.

Beispiel:

NAME       ZONE           ACCELERATOR_TYPE  NETWORK_ENDPOINT   NETWORK  RANGE          STATUS
demo-tpu   us-central1-b  v2-8              10.240.1.2:8470    default  10.240.1.0/29  PREEMPTED

VMs und TPUs auf Abruf (nur TPU-Knoten)

Wie in der Kurzanleitung für Ihr Framework beschrieben, benötigen Sie zum Herstellen einer Verbindung zu einer TPU eine virtuelle Compute Engine-Maschine (VM). Der Abrufbarkeitsstatus der TPU ist unabhängig vom Abrufbarkeitsstatus der VM. Eine TPU kann als auf Abruf verfügbar und die VM als nicht auf Abruf verfügbar konfiguriert werden und umgekehrt. Sie können auch beide als auf Abruf verfügbar definieren.

Die wahrscheinlichste Kombination ist eine präemptive TPU und eine nicht auf Abruf verfügbare VM. Beachten Sie Folgendes:

  • Die Gebühren für die VM sind im Verhältnis zu den Gebühren für die TPU wahrscheinlich niedrig. Die VM-Gebühren hängen vom verwendeten Maschinentyp ab. Ein Beispiel für die relativen Kosten finden Sie auf der Preisseite.
  • Cloud TPU koordiniert das vorzeitige Beenden der VM und der TPU nicht. Wenn Sie beide als auf Abruf festlegen, können die VM und die TPU zu unterschiedlichen Zeiten vorzeitig beendet werden.
  • Wenn Compute Engine Ihre VM vorzeitig beendet, werden Ihnen dennoch Kosten für die TPU berechnet (es sei denn, die TPU wird selbst vorzeitig beendet). Beachten Sie, dass sich die TPU im Leerlauf befindet, während die VM vorzeitig beendet wird.
  • Instanzen auf Abruf, sowohl Compute Engine-VM- als auch Cloud TPU-Instanzen, werden nach einer Laufzeit von 24 Stunden immer beendet. Bestimmte Aktionen setzen diese 24-Stunden-Frist zurück.

Erkennen, ob eine VM-Instanz vorzeitig beendet wurde (nur TPU-Knoten)

Wenn Sie prüfen möchten, ob die VM-Instanz vorzeitig beendet wurde, rufen Sie mit dem Befehl gcloud compute operations list eine Liste der letzten Systemvorgänge ab. Fügen Sie den Filter name hinzu, damit nur die ausgeführten Instanzen angezeigt werden, oder fügen Sie den Filter operationType hinzu, um nur Ressourcen anzuzeigen, die vorzeitig beendet wurden. Verwenden Sie beispielsweise den folgenden Befehl, um nur Instanzen mit dem angegebenen Instanznamen aufzurufen:

$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"

Im folgenden Beispiel werden nur die Ressourcen angezeigt, die vorzeitig beendet wurden:

$ gcloud compute operations list --filter="operationType=compute.instances.preempted"

Weitere Informationen finden Sie in der Compute Engine-Anleitung.

Anwendung für maschinelles Lernen für die Ausführung auf TPUs auf Abruf entwerfen

Achten Sie darauf, dass Ihre Anwendung den Neustarts von VM und TPU gegenüber resistent ist, indem Sie regelmäßig Modellprüfpunkte speichern und Ihre Anwendung so konfigurieren, dass der neueste Prüfpunkt beim Neustart wiederhergestellt wird.