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 Projekt einrichten und Cloud TPU API aktivieren.
Wenn Sie die Google Cloud CLI verwenden, können Sie Google Cloud Shell, eine Compute Engine-VM verwenden oder die Google Cloud CLI lokal installieren. Mit Google Cloud Shell können Sie mit Cloud TPUs interagieren, ohne Software installieren zu müssen. Die Verbindung zu Google Cloud Shell kann nach einer bestimmten Zeit der Inaktivität getrennt werden. 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.
Mit gcloud
gibt es zwei Methoden zum Bereitstellen von TPUs:
- Ressourcen in der Warteschlange verwenden:
gcloud alpha 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.
Informationen zum Erstellen einer TPU mit Ressourcen in der Warteschlange finden Sie unter Ressourcen in der Warteschlange.
Wenn Sie die Funktion „Multislice“ verwenden, finden Sie in der Einführung in Multislice weitere Informationen.
Geben Sie bei Verwendung von Multislice die folgenden zusätzlichen Parameter an, wenn Sie Ressourcen in der Warteschlange anfordern:
export NODE_COUNT=node_count export NODE_PREFIX=your_tpu_prefix # Optionalwobei
${NODE_COUNT} is the number of slices to create and ${NODE_PREFIX} is the prefix you specify to generate names for each slice. A number is appended to the prefix for each slice. For example if you set ${NODE_PREFIX} to mySlice, the slices are named: mySlice-0, mySlice-1, and so on.
Cloud TPU mit der Create Node API erstellen
Führen Sie den Befehl gcloud compute tpus tpu-vm create
aus, um eine TPU mit der Create Node API zu erstellen.
Informationen dazu, welche TPU-VM-Software Sie verwenden sollten, finden Sie unter TPU-VM-Images.
Sie können TPU-Konfigurationen in Bezug auf TensorCores oder TPU-Chips angeben. Weitere Informationen finden Sie im Abschnitt zur TPU-Version, die Sie unter Systemarchitektur verwenden.
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 Version der Cloud TPU, die Sie erstellen möchten. Weitere Informationen zu TPU-Versionen finden Sie unter TPU-Versionen.
topology
- Die unterstützten Topologien finden Sie im Abschnitt Topologie.
version
- Die TPU-Softwareversion, die Sie verwenden möchten. Weitere Informationen finden Sie unter TPU-Softwareversionen.
Weitere Informationen zu unterstützten TPU-Typen und -Topologien finden Sie unter TPU-Versionen.
Cloud TPU in der Google Cloud Console erstellen
Rufen Sie die TPU-Seite auf:
Klicken Sie auf TPU-Knoten erstellen.
Geben Sie im Feld Name den Namen einer TPU-Instanz ein.
Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.
Wählen Sie im Feld TPU-Typ den von Ihnen verwendeten 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 für die TPU-Softwareversion die Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Beim Erstellen einer Cloud TPU können Sie mit der TPU-Softwareversion das auf der TPU-VM installierte ML-Framework auswählen. Es sind keine weiteren Einstellungen erforderlich. Weitere Informationen finden Sie unter Unterstützte Modelle.
Klicken Sie auf Erstellen, um Ihre Ressourcen zu erstellen.
Cloud TPU-VM mit curl
erstellen
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 den Parameter --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'
Verbindung zu einer Cloud TPU herstellen
Sie müssen über SSH explizit eine Verbindung zur TPU-VM herstellen.
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone
Wenn Sie Segmente mit mehr als vier Chips anfordern, erstellt Cloud TPU eine TPU-VM für jede Gruppe von vier Chips.
Sie können mit tpu-vm ssh command
eine Verbindung zu jeder TPU-VM herstellen, um die Binärdateien zu installieren oder Code auszuführen.
$ gcloud compute tpus tpu-vm ssh tpu-name
Wenn Sie über SSH eine Verbindung zu einer bestimmten TPU-VM herstellen oder Binärdateien auf jeder TPU-VM installieren möchten, verwenden Sie das Flag --worker
, das auf einen 0-basierten Index folgt:
$ gcloud compute tpus tpu-vm ssh ${TPU_NAME} --worker=1
Wenn Sie mit einem einzigen Befehl einen Befehl auf allen TPU-VMs ausführen möchten, verwenden Sie die Flags --worker=all
und --command
, um einen Befehl auf allen TPU-VMs gleichzeitig auszuführen.
Beispiel:
$ 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 Multislice können Sie entweder einen Befehl mit dem enumerierten tpu-Namen, jedem Segmentpräfix und der daran angehängten Nummer auf einer einzelnen VM ausführen oder die Flags --node=all
, --worker=all
und --command
verwenden, um den Befehl auf allen TPU-VMs in allen Segmenten auszuführen, und zwar mit einem optionalen --batch-size
-Feld.
$ 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
So verwenden Sie SSH im Browser:
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.
Cloud TPU-Ressourcen mit gcloud
auflisten
$ gcloud compute tpus tpu-vm list --zone=zone
Dieser Befehl listet die Cloud TPU-Ressourcen in der angegebenen Zone auf. Wenn derzeit keine Ressourcen eingerichtet sind, werden in der Ausgabe nur Striche für die VM und die TPU angezeigt. Wenn eine Ressource aktiv ist und die andere nicht, wird eine Meldung angezeigt, die auf einen fehlerhaften Status hinweist. Sie müssen die nicht ausgeführte Ressource starten oder neu starten.
Cloud TPU-Ressourcen in der Google Cloud Console auflisten
Alle bereitgestellten TPUs werden in der Ausgabe angezeigt.
Informationen zu Ihrer Cloud TPU abrufen
Sie können Informationen zu einer angegebenen Cloud TPU abrufen.
Informationen zu einer Cloud TPU mit gcloud
abrufen
$ gcloud compute tpus tpu-vm describe tpu-name \
--zone=zone
Informationen zu einer Cloud TPU in der Google Cloud Console abrufen
Rufen Sie die TPU-Seite auf:
Klicken Sie auf den Namen Ihrer Cloud TPU. Die Cloud TPU-Detailseite wird angezeigt.
Cloud TPU-Ressourcen anhalten
Sie können eine einzelne Cloud TPU beenden, um weitere Gebühren zu vermeiden, ohne die Konfiguration und Software Ihrer VM zu verlieren. Das Beenden von TPU-Pods oder TPUs, die über die API für Warteschlangenressourcen zugewiesen wurden, wird nicht unterstützt. Wenn Sie weitere Gebühren für TPUs vermeiden möchten, die über die API für die Warteschlange für Ressourcen zugewiesen wurden, müssen Sie die TPU löschen.
Cloud TPU mit gcloud
beenden
$ gcloud compute tpus tpu-vm stop tpu-name
--zone=zone
Cloud TPU in der Google Cloud Console anhalten
Rufen Sie die TPU-Seite auf:
Klicken Sie auf das Kästchen neben Ihrer Cloud TPU und dann in der Menüleiste oben auf der Seite auf STOPP.
Cloud TPU-Ressourcen starten
Sie können eine Cloud TPU starten, wenn sie beendet wurde.
- Klicken Sie auf das Kästchen neben Ihrer Cloud TPU und dann in der Menüleiste oben auf der Seite auf START (Starten).
Cloud TPU mit gcloud
starten
Sie können eine beendete Cloud TPU starten, um sie wieder zu verwenden.
$ gcloud compute tpus tpu-vm start tpu-name \
--zone=zone
Cloud TPU in der Google Cloud Console starten
Rufen Sie die TPU-Seite auf:
Klicken Sie auf das Kästchen neben Ihrer Cloud TPU und dann in der Menüleiste oben auf dem Bildschirm auf
START
.
Cloud TPU löschen
Löschen Sie die TPU-VM-Slices am Ende der Sitzung.
Cloud TPU mit gcloud
löschen
$ 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.
Cloud TPU in der Google Cloud Console löschen
Rufen Sie die TPU-Seite auf:
Klicken Sie auf das Kästchen neben der Cloud TPU und dann auf Löschen.
Erweiterte Konfigurationen
Benutzerdefinierte Netzwerkressourcen
Wenn Sie die TPU erstellen, können Sie das Netzwerk und/oder ein Subnetzwerk angeben. Senden Sie dazu entweder einen gcloud
-Befehl oder einen curl
-Aufruf.
Verwenden Sie Folgendes, um das Netzwerk oder Subnetzwerk in der gcloud
-Befehlszeile anzugeben:
--network [NETWORK] --subnetwork [SUBNETWORK]
Verwenden Sie Folgendes, 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 das Subnetzwerk angeben, um ein bestimmtes Subnetzwerk zu verwenden. 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}
Privater Google-Zugriff
Wenn Sie eine SSH-Verbindung zu den TPU-VMs 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.
Zum Hinzufügen von Zugriffskonfigurationen muss enable_external_ips
festgelegt werden. Wenn Sie eine TPU erstellen, wird enable_external_ips
standardmäßig festgelegt. Wenn Sie die Funktion deaktivieren möchten, geben Sie den folgenden Befehl ein:
--internal-ips
Oder verwenden Sie einen curl
-Aufruf:
network_config: {enable_external_ips: true}
Nachdem Sie den privater Google-Zugriff konfiguriert haben, stellen Sie über SSH eine Verbindung zur VM her.
Benutzerdefiniertes Dienstkonto
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, auf Cloud Storage und andere Dienste zuzugreifen. Standardmäßig verwendet die TPU-VM das Compute Engine-Standarddienstkonto.
Sie können beim Erstellen einer TPU-VM mit dem Flag --service-account
ein benutzerdefiniertes Dienstkonto angeben. 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.
TPU-VM mit der gcloud
-Befehlszeile erstellen
$ 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
TPU-VM mit curl
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 }}" \
service_account: {email: 'your-service-account'} \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name
Wenn Sie ein benutzerdefiniertes Dienstkonto verwenden möchten, müssen Sie das Dienstkonto für Ihre Google Cloud Storage-Buckets autorisieren. Weitere Informationen finden Sie unter Verbindung zu Cloud Storage-Buckets herstellen.
Benutzerdefinierte VM-SSH-Methoden
Richten Sie eine Firewall für SSH ein.
Das Standardnetzwerk ist vorkonfiguriert, um den SSH-Zugriff auf alle VMs zuzulassen. 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 CLI 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
.