TPU-Ressourcen verwalten

Auf dieser Seite wird beschrieben, wie Sie Cloud TPU-Ressourcen verwalten mit:

  • Die Google Cloud CLI das die primäre Befehlszeile für Google Cloud bereitstellt.
  • Die Google Cloud Console bietet eine integrierte Verwaltungskonsole für Ihre Google Cloud-Ressourcen.

Vorbereitung

Bevor Sie diese Verfahren ausführen, müssen Sie die Google Cloud CLI installieren, Ein Google Cloud-Projekt und aktivieren die Cloud TPU API. Eine Anleitung dazu finden Sie Siehe Cloud TPU-Umgebung einrichten

Wenn Sie die Google Cloud CLI verwenden, können Sie Befehle mit der Cloud Shell, eine Compute Engine-VM oder Ihr lokaler Rechner. Die <ph type="x-smartling-placeholder"></ph> Cloud Shell ermöglicht die Interaktion mit Cloud TPUs, ohne Software zu installieren. Die Verbindung zu Cloud Shell wird nach Inaktivität. Wenn Sie lang andauernde Befehle ausführen, empfehlen wir, die Google Cloud CLI auf Ihrem lokalen Computer Weitere Informationen zur Google Cloud CLI finden Sie in der Referenz zu gcloud.

Cloud TPUs bereitstellen

Sie können eine Cloud TPU mit gcloud, der Google Cloud Console, oder die Cloud TPU API.

Es gibt zwei Methoden zum Bereitstellen von TPUs mit gcloud:

  1. Ressourcen in der Warteschlange verwenden: gcloud alpha compute tpus queued-resources create
  2. Mit der Create Node API: gcloud compute tpus tpu-vm create

Es empfiehlt sich, TPUs mithilfe von Ressourcen in der Warteschlange bereitzustellen. Wenn Sie Ressourcen in der Warteschlange anfordern, wird die Anfrage einer Warteschlange hinzugefügt, die von dem Cloud TPU-Dienst. Wenn die angeforderte Ressource verfügbar ist, die Ihrem Google Cloud-Projekt zur sofortigen ausschließlichen Verwendung zugewiesen sind. Für Weitere Informationen finden Sie unter Verwaltete Ressourcen in der Warteschlange.

Wenn Sie „Multislice“ verwenden, müssen Sie Ressourcen in der Warteschlange verwenden und den Parameter folgenden zusätzlichen Parametern:

export NODE_COUNT=node_count
export NODE_PREFIX=your_tpu_prefix # Optional

Dabei gilt:

  • ${NODE_COUNT} ist die Anzahl der zu erstellenden Segmente.
  • ${NODE_PREFIX} ist das Präfix, das Sie zum Generieren von Namen für die einzelnen Segmente angeben. An das Präfix wird für jedes Segment eine Zahl angehängt. Wenn Sie beispielsweise ${NODE_PREFIX} bis mySlice, heißen die Segmente: mySlice-0, mySlice-1, wird für jedes Segment numerisch fortgesetzt.

Weitere Informationen zur Funktion „Multislice“ finden Sie in der Einführung mit mehreren Segmenten

Cloud TPU mit der Create Node API erstellen

Beim Erstellen einer Cloud TPU müssen Sie das TPU-VM-Image angeben (auch TPU genannt) Softwareversion). Informationen zum Bestimmen, welches VM-Image Sie verwenden sollten, finden Sie unter TPU-VM Bilder.

Sie müssen die TPU-Konfiguration auch in Bezug auf TensorCores oder TPU angeben Chips. Weitere Informationen finden Sie im Abschnitt zur verwendeten TPU-Version in Systemarchitektur.

gcloud

Um eine TPU mit der Create Node API zu erstellen, verwenden Sie den Befehl gcloud compute tpus tpu-vm create.

Der folgende Befehl verwendet eine TensorCore-basierte Konfiguration:

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --accelerator-type=v4-8 \
  --version=tpu-software-version

Beschreibung der Befehls-Flags

zone
Die Zone in dem Sie Ihre Cloud TPU erstellen möchten.
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
version
Die TPU-Softwareversion.
shielded-secure-boot (optional)
Gibt an, dass die TPU-Instanzen mit aktiviertem Secure Boot erstellt werden. Dadurch werden sie implizit zu Shielded VM-Instanzen. Siehe Was ist Shielded VM? , um weitere Details zu erhalten.

Mit dem folgenden Befehl wird eine TPU mit einer bestimmten Topologie erstellt:

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --type=v4 \
  --topology=2x2x1 \
  --version=tpu-software-version

Erforderliche Flags

tpu-name
Der Name der TPU-VM, die Sie erstellen.
zone
Die Zone, in der Sie sich befinden Cloud TPU erstellen.
type
Die TPU-Version, die Sie verwenden möchten. Weitere Informationen finden Sie unter TPU-Versionen.
topology
Die physische Anordnung von TPU-Chips, die die Anzahl der Chips in jeder Dimension. Weitere Informationen zu unterstützte Topologien für jede TPU-Version, siehe TPU-Versionen.
version
Die TPU-Softwareversion, die Sie verwenden möchten. Weitere Informationen finden Sie unter TPU-Softwareversionen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    Zu TPUs

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an die Sie erstellen möchten. Weitere Informationen zu unterstützten Beschleunigertypen Informationen zu den einzelnen TPU-Versionen finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf Erstellen, um Ihre Ressourcen anzulegen.

curl

Der folgende Befehl verwendet curl, um eine TPU zu erstellen.

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
network_config: {enable_external_ips: true}, \
shielded_instance_config: { enable_secure_boot: true }}" \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name

Pflichtfelder

runtime_version
Die Cloud TPU-Laufzeitversion, die Sie verwenden möchten.
project
Der Name Ihres registrierten Google Cloud-Projekts.
zone
Die Zone wo Sie Ihre Cloud TPU erstellen.
node_name
Der Name der TPU-VM, die Sie erstellen.

Startskript ausführen

Sie können ein Startskript auf jeder TPU-VM ausführen, indem Sie die Das Flag --metadata startup-script beim Erstellen der TPU-VM. Die folgenden eine TPU-VM mithilfe eines Startskripts erstellt.

$ gcloud compute tpus tpu-vm create tpu-name \
    --zone=us-central2-b \
    --accelerator-type=tpu-type \
    --version=tpu-vm-tf-2.17.0-pjrt \
    --metadata startup-script='#! /bin/bash
      pip3 install numpy
      EOF'

Mit einer Cloud TPU verbinden

gcloud

Stellen Sie über SSH eine Verbindung zu Ihrer Cloud TPU her:

$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone

Wenn Sie ein Segment anfordern, das größer als ein einzelner Host ist, erstellt Cloud TPU ein TPU-VM für jeden Host. Die Anzahl der TPU-Chips pro Host hängt vom TPU-Version.

Stellen Sie eine Verbindung zu jeder TPU-VM her, um Binärdateien zu installieren oder Code auszuführen. tpu-vm ssh command.

$ gcloud compute tpus tpu-vm ssh tpu-name

Verbindung zu einer bestimmten TPU-VM herstellen mithilfe von SSH das Flag --worker verwenden, das auf einen 0-basierten Index folgt:

$ gcloud compute tpus tpu-vm ssh tpu-name --worker=1

Um mit einem einzigen Befehl einen Befehl auf allen TPU-VMs auszuführen, verwenden Sie die Methode Flags --worker=all und --command:

$ gcloud compute tpus tpu-vm ssh tpu-name \
  --project=your_project_ID \
  --zone=zone \
  --worker=all \
  --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'

Für die Multislice können Sie einen Befehl auf einer einzelnen VM ausführen. unter Verwendung des enumerierten TPU-Namens mit jedes Segmentpräfix und die daran angehängte Zahl. Um eine für alle TPU-VMs in allen Segmenten mit --node=all, --worker=all, und --command mit einem optionalen --batch-size melden.

$ gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \
  --project=project_ID \
  --zone=zone \
  --node=all \
  --worker=all \
  --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' \
  --batch-size=4

Console

Verwenden Sie SSH im Browser, um in der Google Cloud Console eine Verbindung zu Ihren TPUs herzustellen:

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    Zu TPUs

  2. Klicken Sie in der Liste der TPU-VMs in der Zeile der TPU-VM, die Sie verwenden möchten, auf SSH. mit dem Sie eine Verbindung herstellen möchten.

Cloud TPU-Ressourcen auflisten

Sie können alle Ihre Cloud TPU in einer bestimmten Zone auflisten.

gcloud

$ gcloud compute tpus tpu-vm list --zone=zone

Console

Rufen Sie in der Google Cloud Console die Seite TPUs auf:

Zu TPUs

Informationen zu Ihrer Cloud TPU abrufen

Sie können Informationen zu einer angegebenen Cloud TPU abrufen.

gcloud

$ gcloud compute tpus tpu-vm describe tpu-name \
  --zone=zone

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    Zu TPUs

  2. Klicken Sie auf den Namen Ihrer Cloud TPU. In der Konsole werden die Detailseite der Cloud TPU

Cloud TPU-Ressourcen beenden

Sie können eine Cloud TPU anhalten, um Gebühren zu vermeiden, ohne die Konfiguration und Software Ihrer VM zu verlieren.

gcloud

$ gcloud compute tpus tpu-vm stop tpu-name \
  --zone=zone

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    Zu TPUs

  2. Klicken Sie auf das Kästchen neben Ihrer Cloud TPU.

  3. Klicken Sie auf Beenden.

Cloud TPU-Ressourcen starten

Sie können eine Cloud TPU starten, wenn sie beendet wurde.

gcloud

$ gcloud compute tpus tpu-vm start tpu-name \
  --zone=zone

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    Zu TPUs

  2. Klicken Sie auf das Kästchen neben Ihrer Cloud TPU.

  3. Klicken Sie auf Starten.

Cloud TPU löschen

Löschen Sie die TPU-VM-Slices am Ende der Sitzung.

gcloud

$ gcloud compute tpus tpu-vm delete tpu-name \
  --project=project-id \
  --zone=zone \
  --quiet

Beschreibung der Befehls-Flags

zone
Die Zone in dem Sie Ihre Cloud TPU löschen möchten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    Zu TPUs

  2. Klicken Sie auf das Kästchen neben Ihrer Cloud TPU.

  3. Klicken Sie auf Löschen.

Erweiterte Konfigurationen

Benutzerdefinierte Netzwerkressourcen angeben

Beim Erstellen der TPU können Sie ein Netzwerk oder Subnetzwerk.

gcloud

So geben Sie das Netzwerk oder Subnetzwerk mit der gcloud-Befehlszeile an: Befehls-Flags:

--network NETWORK --subnetwork SUBNETWORK

curl

Fügen Sie Folgendes hinzu, um das Netzwerk oder Subnetzwerk in einem curl-Aufruf anzugeben -Parameter an den Anfragetext:

network_config: {network: 'NETWORK', subnet: 'SUBNETWORK', enable_external_ips: true}

Netzwerk

Sie können optional das Netzwerk angeben, das für die TPU verwendet werden soll. Wenn keine Angabe erfolgt, Das Netzwerk default wird verwendet.

Gültige Netzwerkformate:

https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
compute/{version}/projects/{proj-id}/global/networks/{network}
compute/{version}/projects/{proj-##}/global/networks/{network}
projects/{proj-id}/global/networks/{network}
projects/{proj-##}/global/networks/{network}
global/networks/{network}
{network}

Subnetzwerk

Sie können ein bestimmtes Subnetzwerk angeben, das für die TPU verwendet werden soll. Die angegebene Das Subnetzwerk muss sich in derselben Region wie die Zone befinden, in der die TPU ausgeführt wird.

Gültige Formate:

https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
regions/{region}/subnetworks/{subnetwork}
{subnetwork}

Privaten Google-Zugriff aktivieren

Wenn Sie eine Verbindung zu TPU-VMs über SSH herstellen möchten, müssen Sie entweder Zugriffskonfigurationen hinzufügen für die TPU-VMs einrichten oder die Methode Privater Google-Zugriff für das Subnetzwerk, mit dem die TPU-VMs verbunden sind.

Wenn Sie Zugriffskonfigurationen hinzufügen möchten, müssen Sie enable_external_ips festlegen. Wenn Sie TPU erstellen, enable_external_ips ist standardmäßig festgelegt.

Wenn Sie dies deaktivieren möchten, aktivieren Sie interne IP-Adressen:

gcloud

Verwenden Sie beim Erstellen einer TPU das Flag --internal-ips:

--internal-ips

curl

Fügen Sie dem Anfragetext die folgenden Parameter hinzu:

network_config: {enable_external_ips: false}

Nachdem Sie den privater Google-Zugriff konfiguriert haben, stellen Sie über SSH eine Verbindung zur VM her.

Benutzerdefiniertes Dienstkonto anhängen

Jeder TPU-VM ist ein Dienstkonto zugeordnet, das zum Senden von API-Anfragen verwendet wird . TPU-VMs verwenden dieses Dienstkonto für den Aufruf von Cloud TPU APIs verwenden und auf Cloud Storage und andere Dienste zugreifen Standardmäßig verwendet die TPU-VM die Methode Compute Engine-Standarddienstkonto.

Das Dienstkonto muss im selben Google Cloud-Projekt, in dem Sie Ihre TPU-VM erstellen. Verwendete benutzerdefinierte Dienstkonten für TPU-VMs muss die TPU-Anzeige haben zum Aufrufen der Cloud TPU API. Wenn der auf der TPU-VM ausgeführte Code andere Google Cloud-Diensten erhält, muss es die für den Zugriff auf diese Dienste erforderlichen Rollen haben.

Beim Erstellen einer TPU können Sie ein benutzerdefiniertes Dienstkonto angeben mit dem Flag --service-account. Weitere Informationen zu Dienstkonten Siehe Dienstkonten.

Verwenden Sie die folgenden Befehle, um ein benutzerdefiniertes Dienstkonto anzugeben.

gcloud

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --accelerator-type=tpu-type \
  --version=tpu-vm-tf-2.17.0-pjrt \
  --service-account=your-service-account

curl

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
network_config: {enable_external_ips: true}, \
shielded_instance_config: { enable_secure_boot: true }}" \
service_account: {email: 'your-service-account'} \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name

Benutzerdefinierte SSH-Methoden aktivieren

  1. Richten Sie eine Firewall für SSH ein.

    Das Standardnetzwerk ist so vorkonfiguriert, dass SSH-Zugriff auf alle VMs zugelassen wird. Wenn Sie verwenden nicht das Standardnetzwerk oder Sie haben es geändert. müssen Sie möglicherweise den SSH-Zugriff explizit aktivieren, indem Sie eine Firewallregel:

    $ gcloud compute tpus tpu-vm compute firewall-rules create \
      --network=network allow-ssh \
      --allow=tcp:22
    
  2. Stellen Sie über SSH eine Verbindung zu den TPU-VMs her.

    $ gcloud compute tpus tpu-vm ssh tpu-name \
      --zone=us-central2-b \
      --project=project-id
    

    Pflichtfelder

    • tpu-name: Name der TPU-VM.
    • zone: Die Zone, in der Sie die TPU-VM erstellt haben.
    • project-id ist der Name Ihres Google Cloud-Projekts.

    Eine Liste der optionalen Felder finden Sie in der Dokumentation zur gcloud API