TPU Flex-Start-VMs mit 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, verbleibt Ihre Anfrage in einer Warteschlange, bis Kapazität verfügbar ist. 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 TPU7x-, TPU v6e- und TPU v5p-Maschinentypen anfordern. Weitere Informationen zu den Regionen und Zonen, in denen diese Maschinentypen verfügbar sind, finden Sie unter TPU-Regionen und ‑Zonen.

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

  • Lebenszyklusvorgänge: Sie können TPU-Instanzen nicht beenden, starten, fortsetzen oder anhalten. Wenn Sie Konfigurationen ändern möchten, die einen Neustart erfordern, 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 verwaltete Instanzgruppe, die aufgrund der definierten Beschleunigertopologie einen TPU-Slice mit mehreren Hosts bildet, nicht aktualisieren.
    • Sie können eine MIG, die TPU-Slices mit einem einzelnen Host bildet, mit den automatischen oder selektiven Methoden aktualisieren. Die Updates für TPU-Slices mit einem einzelnen Host unterstützen jedoch die Aktion zum Neustarten (RESTART) nicht. Wenn ein Neustart erforderlich ist und die umfassendste zulässige Aktion „Ersetzen“ (REPLACE) ist, wird die Instanz durch das Updater-Tool ersetzt. Andernfalls schlägt der Aktualisierungsversuch mit einem Fehler fehl.

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

    • Richtlinie für die 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 auf die Anzahl der Instanzen festlegen, die für die 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.

    • Von MIG initiierte Reparaturen: Sie müssen von MIG initiierte Reparaturen deaktivieren, indem Sie das Feld defaultActionOnFailure auf DO_NOTHING setzen. In dieser Konfiguration führt die MIG keine Aktionen für eine fehlgeschlagene Instanz aus. Compute Engine stellt die fehlerhafte Instanz automatisch wieder her, indem alle Instanzen im selben Slice auf einer fehlerfreien Kapazität neu gestartet werden.

  • 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 in Google Cloud erstellen
  • Compute Engine API (compute.googleapis.com) aktivieren
  • Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben:
    • roles/compute.instanceAdmin.v1
    • roles/iam.serviceAccountUser

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

Prüfen Sie, ob Sie für die Verwendung von TPU Flex-Start-VMs genug auf Abruf verfügbares Kontingent haben. Wenn für Ihre Arbeitslast mehr Kerne erforderlich sind als in Ihrer aktuellen Zuweisung, können Sie eine Kontingenterhöhung beantragen. Weitere Informationen finden Sie unter Cloud TPU-Kontingente.

TPU Flex-Start-VMs mit MIGs erstellen

Wenn Sie TPU-VMs mit Flex-Start 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 ausgewählte Laufzeit 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-Image-Familie 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 die Anzahl der 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 Segmente mit nur einem 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: Name der 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 Single-Host-Slices erstellen

Instanzvorlage erstellen

Erstellen Sie eine Instanzvorlage, in der das Bereitstellungsmodell FLEX_START und die von Ihnen ausgewählte Laufzeit 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-Image-Familie 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 die Anzahl der 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 Segmente mit nur einem 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: Name der 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