TPU Flex-Start-VMs mit der Compute Engine erstellen

TPU Flex-Start-VMs, die auf dem Dynamic Workload Scheduler basieren, bieten eine flexible und kostengünstige Möglichkeit, bis zu 7 Tage lang auf TPU-Ressourcen für KI-Arbeitslasten zuzugreifen, ohne dass langfristige Reservierungen erforderlich sind. Wenn Sie TPU Flex-Start-VMs anfordern, bleibt Ihre Anfrage in einer Warteschlange, bis Kapazitäten verfügbar sind. Nach der Bereitstellung werden die TPU-VMs für die von Ihnen angegebene Dauer ausgeführt.

TPU-Flex-Start-VMs eignen sich gut für schnelle Experimente, kleinere Tests, die dynamische Bereitstellung von TPUs für Inferenz-Workloads, Modellabstimmung und Workloads, die weniger als 7 Tage dauern. Weitere Informationen zu anderen Optionen der TPU-Nutzung finden Sie unter Cloud TPU-Nutzungsoptionen.

Sie können Ihre TPU-Ressourcen jederzeit löschen, um die Abrechnung zu beenden. Weitere Informationen zu TPU-Preisen finden Sie unter Cloud TPU-Preise.

Beschränkungen

Für TPU Flex-Start-VMs gelten die folgenden Beschränkungen:

  • Sie können TPU Flex-Start-VMs für eine Dauer von bis zu 7 Tagen anfordern.
  • Sie können die folgenden Cloud TPU-Versionen und ‑Zonen anfordern:
    • TPU7x: us-central1-c
    • TPU v6e: asia-northeast1-b, us-east5-a, us-south1-ai1b
    • TPU v5p: us-east5-a

Für MIGs mit TPUs gelten die folgenden Einschränkungen:

  • Lebenszyklusvorgänge: Sie können TPU Instanzen nicht beenden, starten, fortsetzen oder aussetzen. Wenn Sie Konfigurationen ändern möchten, für die ein Neustart erforderlich ist, oder wenn Sie keine Gebühren mehr zahlen möchten, müssen Sie die Instanzen löschen.

  • Zonenverteilung regionaler MIGs: Sie müssen die Zielverteilungsform auf ANY_SINGLE_ZONE festlegen.

  • Konfigurationsaktualisierungen in einer MIG:

    • Sie können eine MIG, die ein TPU-Slice mit mehreren Hosts bildet, aufgrund der definierten Beschleunigertopologie nicht aktualisieren.
    • Sie können eine MIG, die TPU-Slices mit einem einzelnen Host bildet, mit den automatischen oder selektiven Methoden aktualisieren. Die Aktualisierungen für TPU-Slices mit einem einzelnen Host unterstützen jedoch die Aktion „Neustart“ (RESTART) nicht. Wenn ein Neustart erforderlich ist und die umfangreichste zulässige Aktion „Ersetzen“ (REPLACE) ist, ersetzt der Updater die Instanz. Andernfalls schlägt der Aktualisierungsversuch mit einem Fehler fehl.

  • Für eine MIG, die ein TPU-Slice mit mehreren Hosts bildet, gelten außerdem die folgenden Einschränkungen:

    • Richtlinie für Zielgröße: Sie müssen den Modus der Richtlinie für die Zielgröße auf BULK festlegen. Nachdem Sie diesen Modus festgelegt haben, können Sie ihn nicht mehr ändern.

    • Zielgröße: Im Bulk-Modus können Sie die Zielgröße entweder auf 0 oder die Anzahl der Instanzen festlegen, die zum Bilden der Beschleunigertopologie erforderlich sind.

    • Arbeitslastrichtlinie: Sie müssen eine Arbeitslastrichtlinie angeben, in der die Beschleunigertopologie definiert ist. Nachdem Sie die Arbeitslastrichtlinie festgelegt haben, können Sie sie nicht mehr ändern oder aus der MIG entfernen.

  • Nicht unterstützte Funktionen: MIGs mit TPUs unterstützen die folgenden Funktionen nicht:

Hinweis

Bevor Sie TPU Flex-Start-VMs anfordern, müssen Sie:

  • die Google Cloud CLI installieren
  • ein Projekt Google Cloud erstellen
  • die Compute Engine API (compute.googleapis.com) aktivieren
  • prüfen, ob Sie die erforderlichen Berechtigungen haben:
    • roles/compute.instanceAdmin.v1
    • roles/iam.serviceAccountUser

Weitere Informationen finden Sie unter Projekt für TPUs einrichten. Google Cloud

Prüfen Sie, ob Sie für die Verwendung von TPU Flex-Start-VMs genug auf Abruf verfügbares Kontingent haben. Wenn Ihre Arbeitslast mehr Kerne erfordert als Ihre aktuelle Zuteilung, können Sie eine Kontingenterhöhung anfordern. Weitere Informationen finden Sie unter Cloud TPU-Kontingente.

TPU Flex-Start-VMs mit MIGs erstellen

Wenn Sie TPU Flex-Start-VMs verwenden möchten, erstellen Sie eine verwaltete Instanzgruppe (MIG) mit einer bestimmten Instanzvorlagenkonfiguration.

Allgemeine Anleitungen zum Erstellen von Flex-Start-VMs finden Sie unter Flex-Start VMs erstellen.

TPU Flex-Start-VMs mit einem Slice mit mehreren Hosts erstellen

Instanzvorlage erstellen

Erstellen Sie eine Instanzvorlage, in der das Bereitstellungsmodell FLEX_START und die von Ihnen gewählte Ausführungsdauer angegeben sind.

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START",
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": "DURATION"
        }
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates"

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.
  • MACHINE_TYPE: Der Maschinentyp für die TPU-VM, z. B. ct6e-standard-8t.
  • IMAGE_FAMILY: Die Betriebssystem-Imagefamilie für die TPU-VM (z. B. ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: Das Betriebssystem-Image-Projekt für die TPU-VM (z. B. ubuntu-os-accelerator-images)
  • DURATION: Die maximale Ausführungsdauer. Geben Sie für REST eine Anzahl von Sekunden an, z. B. 3600 für 1 Stunde oder 604800 für 7 Tage.
  • REGION: Die Region, in der die Instanzvorlage erstellt werden soll.

Arbeitslastrichtlinie erstellen

Mit dem folgenden Befehl wird eine Arbeitslastrichtlinie erstellt. Dies ist für Slices mit einem einzelnen Host optional.

gcloud

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --accelerator-topology=TOPOLOGY \
  --region=REGION

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WORKLOAD_POLICY_NAME",
    "workloadPolicy": {
      "type": "HIGH_THROUGHPUT",
      "acceleratorTopology": "TOPOLOGY"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • WORKLOAD_POLICY_NAME: Der Name Ihrer Arbeitslastrichtlinie.
  • TOPOLOGY: Die Topologie der TPU-VMs, z. B. 4x4x8.
  • REGION: Die Region, in der die Arbeitslastrichtlinie erstellt werden soll.

MIG erstellen

Erstellen Sie die MIG mit der Vorlage.

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --workload-policy=WORKLOAD_POLICY_URL \
    --default-action-on-vm-failure=do-nothing \
    --target-size-policy-mode=bulk

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": SIZE,
    "targetSizePolicy": {
      "mode": "BULK"
    },
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "instanceLifecyclePolicy": {
      "defaultActionOnFailure": "DO_NOTHING"
    },
    "resourcePolicies": {
      "workloadPolicy": "WORKLOAD_POLICY_URL"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • MIG_NAME: Der Name Ihrer MIG.
  • ZONE: Die Zone Ihrer MIG.
  • INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von Instanzen in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:
    • Für eine regionale Instanzvorlage: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Für eine globale Instanzvorlage: INSTANCE_TEMPLATE_ID
  • SIZE: Die Anzahl der zu erstellenden Instanzen.
  • WORKLOAD_POLICY_URL: Die URL der Arbeitslastrichtlinie, die Sie zum Erstellen von Instanzen in der MIG verwenden möchten. Beispiel: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

TPU Flex-Start-VMs mit Slices mit einem einzelnen Host erstellen

Instanzvorlage erstellen

Erstellen Sie eine Instanzvorlage, in der das Bereitstellungsmodell FLEX_START und die von Ihnen gewählte Ausführungsdauer angegeben sind.

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START",
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": "DURATION"
        }
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates"

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.
  • MACHINE_TYPE: Der Maschinentyp für die TPU-VM, z. B. ct6e-standard-8t.
  • IMAGE_FAMILY: Die Betriebssystem-Imagefamilie für die TPU-VM (z. B. ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: Das Betriebssystem-Image-Projekt für die TPU-VM (zum Beispiel: ubuntu-os-accelerator-images)
  • DURATION: Die maximale Ausführungsdauer. Geben Sie für REST eine Anzahl von Sekunden an, z. B. 3600 für 1 Stunde oder 604800 für 7 Tage.
  • REGION: Die Region, in der die Instanzvorlage erstellt werden soll.

Arbeitslastrichtlinie erstellen

Mit dem folgenden Befehl wird eine Arbeitslastrichtlinie erstellt. Dies ist für Slices mit einem einzelnen Host optional.

gcloud

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --region=REGION

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "WORKLOAD_POLICY_NAME",
    "workloadPolicy": {
      "type": "HIGH_THROUGHPUT"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • WORKLOAD_POLICY_NAME: Ein Name für Ihre Arbeitslastrichtlinie.
  • REGION: Die Region, in der die Arbeitslastrichtlinie erstellt werden soll.

MIG erstellen

Erstellen Sie die MIG mit der Vorlage.

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --workload-policy=WORKLOAD_POLICY_URL

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "resourcePolicies": {
      "workloadPolicy": "WORKLOAD_POLICY_URL"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • MIG_NAME: Der Name Ihrer MIG.
  • ZONE: Die Zone Ihrer MIG.
  • INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von Instanzen in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:
    • Für eine regionale Instanzvorlage: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Für eine globale Instanzvorlage: INSTANCE_TEMPLATE_ID
  • SIZE: Die Anzahl der zu erstellenden Instanzen.
  • WORKLOAD_POLICY_URL: Die URL der Arbeitslastrichtlinie, die Sie zum Erstellen von Instanzen in der MIG verwenden möchten. Beispiel: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.