TPU-Ressourcen verwalten
Auf dieser Seite wird beschrieben, wie Sie Cloud TPU-Ressourcen verwalten mit:
- Die Google Cloud CLI ist die primäre Befehlszeile für Google Cloud.
- Die Google Cloud Console ist eine eingebundene 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 erstellen und die Cloud TPU API aktivieren. Eine Anleitung finden Sie unter Cloud TPU-Umgebung einrichten.
Wenn Sie die Google Cloud CLI verwenden, können Sie Befehle über Cloud Shell, eine Compute Engine-VM oder Ihren lokalen Computer ausführen. Über
Cloud Shell können Sie mit Cloud TPUs interagieren, ohne Software installieren zu müssen. Die Verbindung zu Cloud Shell wird nach einem Zeitraum der Inaktivität getrennt. Wenn Sie lang andauernde Befehle ausführen, empfehlen wir, die Google Cloud CLI auf Ihrem lokalen Computer zu installieren. 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 der Cloud TPU API bereitstellen.
Es gibt zwei Methoden zum Bereitstellen von TPUs mit gcloud
:
- Ressourcen in der Warteschlange verwenden:
gcloud compute tpus queued-resources create
- 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 vom Cloud TPU-Dienst verwaltet wird. Wenn die angeforderte Ressource verfügbar ist, wird sie Ihrem Google Cloud-Projekt zur unmittelbaren exklusiven Verwendung zugewiesen. Weitere Informationen finden Sie unter Verwaltete Ressourcen in der Warteschlange.
Wenn Sie Multislice verwenden, müssen Sie Ressourcen in der Warteschlange verwenden und die folgenden zusätzlichen Parameter angeben:
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}
auf mySlice setzen, haben die Segmente den Namen: mySlice-0, mySlice-1, wobei jedes Segment numerisch fortgesetzt wird.
Weitere Informationen zur Funktion „Multislice“ finden Sie in der Einführung in Multislice.
Cloud TPU mit der Create Node API erstellen
Beim Erstellen einer Cloud TPU müssen Sie das TPU-VM-Image angeben (auch TPU-Softwareversion genannt). Informationen dazu, welches VM-Image Sie verwenden sollten, finden Sie unter TPU-VM-Images.
Außerdem müssen Sie die TPU-Konfiguration in Form von TensorCores oder TPU-Chips angeben. Weitere Informationen finden Sie im Abschnitt zur TPU-Version, die Sie verwenden, unter Systemarchitektur.
gcloud
Verwenden Sie zum Erstellen einer TPU mit der Create Node API 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 der 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 Ihre 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 angeben. Weitere Informationen zu unterstützten Topologien für jede TPU-Version finden Sie unter TPU-Versionen.
version
- Die TPU-Softwareversion, die Sie verwenden möchten. Weitere Informationen finden Sie unter TPU-Softwareversionen.
Console
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie auf TPU erstellen.
Geben Sie im Feld Name einen Namen für die TPU ein.
Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.
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 für jede TPU-Version finden Sie unter TPU-Versionen.
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.
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.16.1-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, in der Sie Ihre Cloud TPU erstellen.
node_name
- Der Name der TPU-VM, die Sie erstellen.
Startskript ausführen
Sie können auf jeder TPU-VM ein Startskript ausführen. Geben Sie dazu beim Erstellen der TPU-VM das Flag --metadata startup-script
an. Mit dem folgenden Befehl wird 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.16.1-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 eine TPU-VM für jeden Host. Die Anzahl der TPU-Chips pro Host hängt von der TPU-Version ab.
Stellen Sie mit tpu-vm ssh command
eine Verbindung zu jeder TPU-VM her, um Binärdateien zu installieren oder Code auszuführen.
$ gcloud compute tpus tpu-vm ssh tpu-name
Verwenden Sie das Flag --worker
, das auf einen 0-basierten Index folgt, um über SSH eine Verbindung zu einer bestimmten TPU-VM herzustellen:
$ gcloud compute tpus tpu-vm ssh tpu-name --worker=1
Verwenden Sie die Flags --worker=all
und --command
, um mit einem einzigen Befehl einen Befehl auf allen TPU-VMs auszuführen:
$ 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'
Bei Multislice können Sie einen Befehl auf einer einzelnen VM mit dem enumerierten TPU-Namen und jedem Slice-Präfix und der dazugehörigen Nummer ausführen. Verwenden Sie die Flags --node=all
, --worker=all
und --command
mit dem optionalen Flag --batch-size
, um einen Befehl auf allen TPU-VMs in allen Segmenten auszuführen.
$ 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:
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie in der Liste der TPU-VMs in der Zeile der TPU-VM, zu der Sie eine Verbindung herstellen möchten, auf SSH.
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:
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
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie auf den Namen Ihrer Cloud TPU. In der Console wird die Cloud TPU-Detailseite angezeigt.
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
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie auf das Kästchen neben Ihrer Cloud TPU.
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
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie auf das Kästchen neben Ihrer Cloud TPU.
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 der Sie Ihre Cloud TPU löschen möchten.
Console
Rufen Sie in der Google Cloud Console die Seite TPUs auf:
Klicken Sie auf das Kästchen neben Ihrer Cloud TPU.
Klicken Sie auf
Löschen.
Erweiterte Konfigurationen
Benutzerdefinierte Netzwerkressourcen angeben
Beim Erstellen der TPU können Sie ein Netzwerk oder Subnetzwerk angeben.
gcloud
Verwenden Sie die folgenden Befehls-Flags, um das Netzwerk oder Subnetzwerk mithilfe der gcloud
-Befehlszeile anzugeben:
--network NETWORK --subnetwork SUBNETWORK
curl
Fügen Sie die folgenden Parameter in den Anfragetext ein, um das Netzwerk oder Subnetzwerk in einem curl
-Aufruf anzugeben:
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, wird das Netzwerk default
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. Das angegebene 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 für die TPU-VMs hinzufügen oder den privaten Google-Zugriff für das Subnetzwerk aktivieren, mit dem die TPU-VMs verbunden sind.
Wenn Sie Zugriffskonfigurationen hinzufügen möchten, müssen Sie enable_external_ips
festlegen. Wenn Sie eine TPU erstellen, wird enable_external_ips
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 mit SSH eine Verbindung zur VM her.
Benutzerdefiniertes Dienstkonto anhängen
Jeder TPU-VM ist ein Dienstkonto zugeordnet, über das sie in Ihrem Namen API-Anfragen stellt. TPU-VMs verwenden dieses Dienstkonto, um Cloud TPU APIs aufzurufen und auf Cloud Storage und andere Dienste zuzugreifen. Standardmäßig verwendet die TPU-VM das Compute Engine-Standarddienstkonto.
Das Dienstkonto muss in dem Google Cloud-Projekt definiert sein, in dem Sie die TPU-VM erstellen. Benutzerdefinierte Dienstkonten, die für TPU-VMs verwendet werden, müssen die Rolle TPU-Betrachter haben, um die Cloud TPU API aufzurufen. Wenn der auf der TPU-VM ausgeführte Code andere Google Cloud-Dienste aufruft, muss er die für den Zugriff auf diese Dienste erforderlichen Rollen haben.
Wenn Sie eine TPU erstellen, können Sie mit dem Flag --service-account
ein benutzerdefiniertes Dienstkonto angeben. Weitere Informationen zu Dienstkonten finden Sie unter 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.16.1-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.16.1-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
Richten Sie eine Firewall für SSH ein.
Das Standardnetzwerk ist so vorkonfiguriert, dass SSH-Zugriff auf alle VMs zugelassen wird. Wenn Sie nicht das Standardnetzwerk verwenden oder die Standardeinstellungen für das Netzwerk geändert haben, müssen Sie den SSH-Zugriff möglicherweise explizit aktivieren, indem Sie eine Firewallregel hinzufügen:
$ gcloud compute tpus tpu-vm compute firewall-rules create \ --network=network allow-ssh \ --allow=tcp:22
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 API-Dokumentation zu
gcloud
.