Präemptive TPUs verwenden

TPU-Knoten auf Abruf sind deutlich günstiger als TPU-Knoten auf Abruf. Der Cloud TPU-Dienst kann diese Knoten jederzeit auf Abruf beenden, wenn für zusätzliche Anfragen zusätzliche TPU-Ressourcen benötigt werden. Sie können einen TPU-Knoten auf Abruf mit der Cloud Console oder mit dem gcloud-Befehlszeilentool erstellen.

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 Ihren 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 Präemptivität für diesen Knoten aktivieren, damit Ihr TPU-Knoten auf Abruf verfügbar ist.
  7. Wählen Sie die TensorFlow- oder PyTorch-Version aus, die Sie auf Ihrer VM installieren möchten.

gcloud

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

wobei

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

Der Abrufbarkeitsstatus einer TPU ist unabhängig vom Abrufbarkeitsstatus der 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.

VMs auf Abruf und TPUs

Wie in der Kurzanleitung beschrieben, benötigen Sie für die 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 präemptive VM. Beachten Sie die folgenden Punkte:

  • 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 einfaches Beispiel für die relativen Kosten finden Sie auf der Preisseite.
  • Cloud TPU koordiniert das Beenden auf Abruf der VM und TPU nicht. Wenn Sie beide als "auf Abruf" definieren, können die VM und die TPU zu unterschiedlichen Zeiten auf Abruf 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 TPU vorzeitig beendet wurde

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

Listen Sie Ihre verfügbaren TPUs auf:

(vm)$ gcloud compute tpus list

Der obige Befehl zeigt die Details der TPUs an, die Sie in Ihrem Projekt erstellt haben. Wurde eine TPU vorzeitig beendet, wechselt der Status von READY zu 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

Erkennen, ob eine VM-Instanz präemptiv beendet wurde

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 einen name-Filter hinzu, um nur die Instanzen anzuzeigen, die Sie derzeit ausführen, 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.