Auf dieser Seite erfahren Sie, wie Sie einen eigenen KI-optimierten Google Kubernetes Engine-Cluster (GKE) erstellen, in dem virtuelle Maschinen (VMs) vom Typ A4X, A4, A3 Ultra, A3 Mega und A3 High (8 GPUs) verwendet werden, um Ihre KI- und ML-Arbeitslasten zu unterstützen.
Die Maschinenserien A4X, A4, A3 Ultra, A3 Mega und A3 High (8 GPUs) wurden entwickelt, damit Sie KI/ML-Cluster im großen Maßstab mit Funktionen wie gezielter Arbeitslastplatzierung, erweiterten Clusterwartungssteuerungen und Topology Aware Scheduling ausführen können. Weitere Informationen finden Sie unter Clusterverwaltung – Übersicht.
GKE bietet eine einheitliche Plattform, auf der Sie eine Vielzahl von Arbeitslasten für die Anforderungen Ihres Unternehmens ausführen können. Dazu gehören leistungsstarkes verteiltes Vortraining, Modellabstimmung, Modellinferenz, Anwendungsbereitstellung und unterstützende Dienste. GKE reduziert den Betriebsaufwand für die Verwaltung mehrerer Plattformen.
Auswählen, wie ein KI-optimierter GKE-Cluster erstellt werden soll
Die folgenden Optionen zum Erstellen von Clustern bieten jeweils unterschiedliche Grade an Benutzerfreundlichkeit und Flexibilität bei der Clusterkonfiguration und der Planung von Arbeitslasten:
Cluster mit der Standardkonfiguration für Compute-, Speicher- und Netzwerkressourcen und mit aktiviertem GPUDirect RDMA-over-Converged-Ethernet (RoCE) erstellen:
- Mit dem Cluster Toolkit können Sie schnell produktionsreife GKE-Cluster erstellen.
- Mit dem Accelerated Processing Kit (XPK) können Sie schnell GKE-Cluster für Proof-of-Concepts und Tests erstellen.
Alternativ können Sie Ihren GKE-Cluster manuell erstellen, um vorhandene GKE-Produktionsumgebungen genau anzupassen oder zu erweitern. Informationen zum manuellen Erstellen eines KI-optimierten GKE-Cluster finden Sie auf einer der folgenden Seiten:
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem Befehl
gcloud components updateab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen und Verwalten des GKE-Cluster und der zugehörigen Dienstkonten haben:
- Kubernetes Engine-Administrator
roles/container.admin - Compute-Administrator (
roles/compute.admin) - Storage-Administrator (
roles/storage.admin) - Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) - Dienstkontoadministrator (
roles/iam.serviceAccountAdmin) - Dienstkontonutzer (
roles/iam.serviceAccountUser) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - Rollenadministrator (
roles/iam.roleAdmin) - Verwalter von Secret Manager-Secret-Versionen (
roles/secretmanager.secretVersionManager)
- Kubernetes Engine-Administrator
Nutzungsoption auswählen und Kapazität erhalten
Wählen Sie eine Option für die Nutzung aus. Treffen Sie Ihre Auswahl basierend darauf, wie Sie GPU-Ressourcen erhalten und verwenden möchten. Weitere Informationen
Berücksichtigen Sie für GKE die folgenden zusätzlichen Informationen, wenn Sie eine Nutzungsoption auswählen:
- A4X-VMs können nicht mit Flex-Start bereitgestellt werden.
- Weitere Informationen zu Flex-Start (Vorabversion) und GKE finden Sie unter GPU-Verfügbarkeit mit Flex-Start.
- Bei Flex-Start wird die kompakte Platzierung nach dem Best-Effort-Prinzip verwendet. Informationen zum Untersuchen der Topologie finden Sie unter Physische Topologie von Knoten in Ihrem GKE-Cluster ansehen.
- Sie können nur dann Topologieinformationen abrufen, wenn Sie Spot-VMs verwenden und kompakte Platzierung konfigurieren.
Kapazität erhalten: Das Verfahren zum Erhalten von Kapazität unterscheidet sich je nach Verbrauchsoption.
Informationen zum Prozess für die von Ihnen ausgewählte Verbrauchsoption finden Sie unter Kapazitätsübersicht.
Voraussetzungen
Für einen KI-optimierten GKE-Cluster gelten die folgenden Anforderungen:
Für A4X müssen Sie für Version 1.33 oder höher die GKE-Version 1.33.4-gke.1036000 oder höher verwenden. Oder verwenden Sie für 1.32 die GKE-Version 1.32.8-gke.1108000 oder höher. Mit diesen Versionen wird sichergestellt, dass A4X Folgendes verwendet:
- R580, die Mindest-GPU-Treiberversion für A4X.
- Coherent Driver-based Memory Management (CDMM), das standardmäßig aktiviert ist. NVIDIA empfiehlt, diesen Modus in Kubernetes-Clustern zu aktivieren, um zu hohe Arbeitsspeicherangaben zu vermeiden. Mit CDMM kann der GPU-Speicher über den Treiber anstelle des Betriebssystems verwaltet werden. So wird vermieden, dass das Betriebssystem den GPU-Arbeitsspeicher online schaltet, und der GPU-Arbeitsspeicher wird dem Betriebssystem als NUMA-Knoten (Non-Uniform Memory Access) zur Verfügung gestellt. GPUs mit mehreren Instanzen werden nicht unterstützt, wenn CDMM aktiviert ist. Weitere Informationen zu CDMM finden Sie unter Hardware- und Software-Support.
- GPUDirect RDMA, das empfohlen wird, damit A4X-Knotenpools die Netzwerkfunktionen von A4X nutzen können.
Achten Sie darauf, dass Sie die Mindestversion des GPU-Treibers verwenden, die vom Maschinentyp abhängt:
- A4X: Für die GB200-GPUs in A4X-VMs ist mindestens die R580-GPU-Treiberversion erforderlich. Siehe die oben genannten Versionsanforderungen.
- A4: Für die B200-GPUs in A4-VMs ist mindestens die R570-Version des GPU-Treibers erforderlich. In GKE wird diese Treiberversion standardmäßig automatisch auf allen A4-Knoten installiert, auf denen die erforderliche Mindestversion für A4, 1.32.1-gke.1729000 oder höher, ausgeführt wird.
- A3 Ultra: Für die H200-GPUs in A3 Ultra-VMs ist mindestens die GPU-Treiberversion R550 erforderlich, die in GKE 1.31 als
latest-Treiberversion verfügbar ist. Für A3 Ultra müssen Siegpu-driver-version=latestmit GKE 1.31 festlegen. In GKE-Version 1.31.5-gke.1169000 oder höher installiert GKE standardmäßig automatisch R550-GPU-Treiberversionen auf A3 Ultra-Knoten.
Bei A3-Ultra-Knotenpools müssen Sie den Laufwerkstyp auf
hyperdisk-balancedfestlegen.Wenn Sie GPUDirect RDMA verwenden möchten, benötigen Sie je nach Maschinentyp die folgenden Mindestversionen:
- A4X: Siehe die oben genannten Versionsanforderungen.
- A4: Verwenden Sie 1.32.2-gke.1475000 oder höher.
- A3 Ultra: Verwenden Sie 1.31.4-gke.1183000 oder höher.
Wenn Sie GPUDirect RDMA verwenden möchten, müssen die GKE-Knoten ein Knoten-Image für Container-Optimized OS verwenden. Ubuntu- und Windows-Knoten-Images werden nicht unterstützt.
Sie müssen das Bereitstellungsmodell reservierungsgebunden verwenden, um Cluster mit A4X zu erstellen. Andere Bereitstellungsmodelle werden nicht unterstützt.
Cluster erstellen
Mit der folgenden Anleitung erstellen Sie einen Cluster entweder mit dem Cluster Toolkit oder mit XPK.
Cluster mit dem Cluster Toolkit erstellen
In diesem Abschnitt wird beschrieben, wie Sie einen Cluster erstellen, der den Anforderungen für einen KI-optimierten GKE-Cluster entspricht und Best Practices für Ihr Projekt befolgt.
A4X
- Cloud Shell starten Sie können eine andere Umgebung verwenden. Wir empfehlen jedoch Cloud Shell, da die Abhängigkeiten für Cluster Toolkit bereits vorinstalliert sind. Wenn Sie Cloud Shell nicht verwenden möchten, folgen Sie der Anleitung zum Installieren von Abhängigkeiten, um eine andere Umgebung vorzubereiten.
Klonen Sie das Cluster-Toolkit aus dem Git-Repository:
cd ~ git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.gitCluster Toolkit installieren:
cd cluster-toolkit && git checkout main && makeErstellen Sie einen Cloud Storage-Bucket zum Speichern des Status der Terraform-Bereitstellung:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioningErsetzen Sie die folgenden Variablen:
BUCKET_NAME: Der Name des neuen Cloud Storage-Bucket.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: die Computing-Region, in der Sie den Zustand der Terraform-Bereitstellung speichern möchten.
Füllen Sie im
examples/gke-a4x/gke-a4x-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Einstellungen in den Abschnittenterraform_backend_defaultsundvarsentsprechend den spezifischen Werten für Ihre Bereitstellung aus:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl. Der Standardwert istgke-a4x.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Compute Engine-Zone für den Knotenpool mit A4X-Maschinen. Diese Zone sollte mit der Zone übereinstimmen, in der Maschinen in Ihrer Reservierung verfügbar sind.NODE_COUNT: Die Anzahl der A4X-Knoten im Knotenpool Ihres Clusters. Diese muss 18 Knoten oder weniger betragen. Wir empfehlen, 18 Knoten zu verwenden, um die GPU-Topologie von1x72in einem Unterblock mit einer NVLink-Domäne zu erhalten.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.Verwenden Sie für das Feld
extended_reservationeinen der folgenden Werte, je nachdem, ob Sie beim Bereitstellen des Knotenpools auf bestimmte Blöcke in einer Reservierung abzielen möchten:- Wenn Sie den Knotenpool an einer beliebigen Stelle in der Reservierung platzieren möchten, geben Sie den Namen Ihrer Reservierung (
RESERVATION_NAME) an. Wenn Sie einen bestimmten Block in Ihrer Reservierung ansprechen möchten, verwenden Sie die Reservierungs- und Blocknamen im folgenden Format:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME
Wenn Sie nicht wissen, welche Blöcke in Ihrer Reservierung verfügbar sind, lesen Sie den Abschnitt Reservierungstopologie ansehen.
- Wenn Sie den Knotenpool an einer beliebigen Stelle in der Reservierung platzieren möchten, geben Sie den Namen Ihrer Reservierung (
Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und die A4X-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist200.A4X_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A4X-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Wenn Sie die erweiterten Einstellungen ändern möchten, bearbeiten Sie die Datei
examples/gke-a4x/gke-a4x.yaml.Optional können Sie Cluster Health Scanner (CHS) für den Cluster aktivieren. CHS prüft den Zustand Ihrer GPU-Cluster, indem Tests ausgeführt werden, um zu prüfen, ob die Cluster bereit sind, Ihre Arbeitslasten auszuführen. Um CHS zu aktivieren, nehmen Sie die folgenden Änderungen in der Datei
examples/gke-a4x/gke-a4x-deployment.yamlvor:Legen Sie im Block
varsdas Feldenable_periodic_health_checksauftruefest.Standardmäßig werden die Healthchecks jeden Sonntag um 00:00 Uhr PST ausgeführt. Wenn Sie diese Einstellung ändern möchten, legen Sie im Block
varsdas Feldhealth_check_scheduleauf einen geeigneten Wert im Cron-Format fest.
Zeitplan im Cron-Format:none * * * * * # | | | | | # | | | | day of the week (0-6) (Sunday to Saturday) # | | | month (1-12) # | | day of the month (1-31) # | hour (0-23) # minute (0-59)
Generieren Sie Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), um Zugriff auf Terraform zu gewähren. Wenn Sie Cloud Shell verwenden, können Sie den folgenden Befehl ausführen:
gcloud auth application-default loginStellen Sie den Blueprint bereit, um die GKE-Infrastruktur mit A4X-Maschinentypen bereitzustellen:
cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4x/gke-a4x-deployment.yaml \ examples/gke-a4x/gke-a4x.yamlWählen Sie bei entsprechender Aufforderung Anwenden aus, um das Blueprint bereitzustellen.
- Mit dem Blueprint werden VPC-Netzwerke, ein GPU-RDMA-VPC-Netzwerk, Dienstkonten, ein Cluster und ein Knotenpool erstellt.
- Zur Unterstützung der Jobvorlage
fio-bench-job-templateim Blueprint werdenGoogle Cloud -Buckets, Netzwerkspeicher und Ressourcen für persistente Volumes erstellt.
A4
- Cloud Shell starten Sie können eine andere Umgebung verwenden. Wir empfehlen jedoch Cloud Shell, da die Abhängigkeiten für Cluster Toolkit bereits vorinstalliert sind. Wenn Sie Cloud Shell nicht verwenden möchten, folgen Sie der Anleitung zum Installieren von Abhängigkeiten, um eine andere Umgebung vorzubereiten.
Klonen Sie das Cluster-Toolkit aus dem Git-Repository:
cd ~ git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.gitCluster Toolkit installieren:
cd cluster-toolkit && git checkout main && makeErstellen Sie einen Cloud Storage-Bucket zum Speichern des Status der Terraform-Bereitstellung:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioningErsetzen Sie die folgenden Variablen:
BUCKET_NAME: Der Name des neuen Cloud Storage-Bucket.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: die Computing-Region, in der Sie den Zustand der Terraform-Bereitstellung speichern möchten.
Welche Dateien Sie zum Erstellen eines Clusters bearbeiten müssen, hängt von der Verbrauchsoption ab, die Sie für Ihre Bereitstellung verwenden. Wählen Sie den Tab aus, der dem Bereitstellungsmodell Ihrer Verbrauchsoption entspricht.
Reservierungsgebunden
Füllen Sie im
examples/gke-a4/gke-a4-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Einstellungen in den Abschnittenterraform_backend_defaultsundvarsentsprechend den spezifischen Werten für Ihre Bereitstellung aus:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl. Der Standardwert istgke-a4.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Computing-Zone für den Knotenpool von A4-Maschinen. Diese Zone muss mit der Zone übereinstimmen, in der Maschinen in Ihrer Reservierung verfügbar sind.NODE_COUNT: Die Anzahl der A4-Knoten in Ihrem Cluster.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.Verwenden Sie für das Feld
reservationeinen der folgenden Werte, je nachdem, ob Sie beim Bereitstellen des Knotenpools auf bestimmte Blöcke in einer Reservierung abzielen möchten:- Wenn Sie den Knotenpool an einer beliebigen Stelle in der Reservierung platzieren möchten, geben Sie den Namen Ihrer Reservierung (
RESERVATION_NAME) an. Wenn Sie einen bestimmten Block in Ihrer Reservierung ansprechen möchten, verwenden Sie die Reservierungs- und Blocknamen im folgenden Format:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME
Wenn Sie nicht wissen, welche Blöcke in Ihrer Reservierung verfügbar sind, lesen Sie den Abschnitt Reservierungstopologie ansehen.
- Wenn Sie den Knotenpool an einer beliebigen Stelle in der Reservierung platzieren möchten, geben Sie den Namen Ihrer Reservierung (
Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und die A4-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.A4_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A4-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Wenn Sie die erweiterten Einstellungen ändern möchten, bearbeiten Sie
examples/gke-a4/gke-a4.yaml.Flex-Start
Füllen Sie im
examples/gke-a4/gke-a4-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Einstellungen in den Abschnittenterraform_backend_defaultsundvarsentsprechend den spezifischen Werten für Ihre Bereitstellung aus:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl. Der Standardwert istgke-a4.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Computing-Zone für den Knotenpool von A4-Maschinen.static_node_countentfernen.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.- Entfernen Sie das Feld
reservationund ersetzen Sie es durchenable_flex_start: true. Fügen Sie in der nächsten Zeileenable_queued_provisioning: truehinzu, wenn Sie auch die Bereitstellung in der Warteschlange verwenden möchten. Weitere Informationen finden Sie unter Knotenpools mit Flex-Start und in die Warteschlange gestellter Bereitstellung verwenden. Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und die A4-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.A4_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A4-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Nehmen Sie im
examples/gke-a4/gke-a4.yaml-Blueprint aus dem GitHub-Repository die folgenden Änderungen vor:- Entfernen Sie im Block
varsden Wertstatic_node_count. - Prüfen Sie im Block
vars, ob dieversion_prefix-Nummer"1.32."oder höher ist. Wenn Sie Flex-Start in GKE verwenden möchten, muss Ihr Cluster die Version 1.32.2-gke.1652000 oder höher verwenden. - Ersetzen Sie im
vars-Block den gesamtenreservation-Block (einschließlich derreservation-Zeile) durchenable_flex_start: trueund optionalenable_queued_provisioning: true. - Wenn Sie die Bereitstellung in der Warteschlange nicht benötigen, entfernen Sie im Block
varsdie folgende Zeile:kueue_configuration_path: $(ghpc_stage("./kueue-configuration.yaml.tftpl")). - Entfernen Sie unter
id: a4-pooldie folgende Zeile:static_node_count: $(vars.static_node_count). Entfernen Sie unter
id: a4-poolden Blockreservation_affinity. Ersetzen Sie diesen Block durch die folgenden Zeilen:enable_flex_start: $(vars.enable_flex_start)auto_repair: false- Wenn Sie die Bereitstellung in der Warteschlange aktivieren möchten, fügen Sie die folgenden zusätzlichen Zeilen hinzu:
enable_queued_provisioning: $(vars.enable_queued_provisioning)autoscaling_total_min_nodes: 0
Entfernen Sie unter
id: workload-manager-installden folgenden Block:kueue: install: true config_path: $(vars.kueue_configuration_path) config_template_vars: num_gpus: $(a3-ultragpu-pool.static_gpu_count) accelerator_type: $(vars.accelerator_type)Gehen Sie für den Flex-Start mit Bereitstellung per Warteschlange folgendermaßen vor:
Fügen Sie dem
vars-Blockgpu_nominal_quota: NOMINAL_QUOTAhinzu. Der Wertgpu_nominal_quotawird verwendet, umnominalQuotader GPUs in derClusterQueue-Spezifikation festzulegen (siehe Schritt zum Festlegen vonClusterQueueunten). In diesem Beispiel lässtClusterQueuenur Arbeitslasten zu, wenn die Summe der GPU-Anfragen kleiner oder gleich dem WertNOMINAL_QUOTAist. Weitere Informationen zuClusterQueuefinden Sie im folgenden Kueue-Dokument zur Clusterwarteschlange.Aktualisieren Sie den Block
kueueso:kueue: install: true config_path: $(vars.kueue_configuration_path) config_template_vars: num_gpus: $(vars.gpu_nominal_quota)Ersetzen Sie den Inhalt der Datei
kueue-configuration.yaml.tftpldurch Folgendes:apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: "default-flavor" --- apiVersion: kueue.x-k8s.io/v1beta1 kind: AdmissionCheck metadata: name: dws-prov spec: controllerName: kueue.x-k8s.io/provisioning-request parameters: apiGroup: kueue.x-k8s.io kind: ProvisioningRequestConfig name: dws-config --- apiVersion: kueue.x-k8s.io/v1beta1 kind: ProvisioningRequestConfig metadata: name: dws-config spec: provisioningClassName: queued-provisioning.gke.io managedResources: - nvidia.com/gpu --- apiVersion: kueue.x-k8s.io/v1beta1 kind: ClusterQueue metadata: name: "dws-cluster-queue" spec: namespaceSelector: {} resourceGroups: - coveredResources: ["nvidia.com/gpu"] flavors: - name: "default-flavor" resources: - name: "nvidia.com/gpu" nominalQuota: ${num_gpus} admissionChecks: - dws-prov --- apiVersion: kueue.x-k8s.io/v1beta1 kind: LocalQueue metadata: namespace: "default" name: "dws-local-queue" spec: clusterQueue: "dws-cluster-queue" ---
Ersetzen Sie unter
id: job-templatedie Variablenode_countdurch2.
- Entfernen Sie im Block
Spot
Füllen Sie im
examples/gke-a4/gke-a4-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Einstellungen in den Abschnittenterraform_backend_defaultsundvarsentsprechend den spezifischen Werten für Ihre Bereitstellung aus:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl. Der Standardwert istgke-a4.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Computing-Zone für den Knotenpool von A4-Maschinen.STATIC_NODE_COUNT: Die Anzahl der A4-Knoten in Ihrem Cluster.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.- Ersetzen Sie den gesamten
reservation-Block (einschließlich derreservation-Zeile selbst) durchspot: true. Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und die A4-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.A4_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A4-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Nehmen Sie im
examples/gke-a4/gke-a4.yaml-Blueprint aus dem GitHub-Repository die folgenden Änderungen vor:- Ersetzen Sie im
vars-Block den gesamtenreservation-Block (einschließlich der Zeilereservationselbst) durchspot: true. Entfernen Sie unter
id: a4-poolden Blockreservation_affinity. Ersetzen Sie diesen Block durch die folgende Zeile:spot: $(vars.spot)
- Ersetzen Sie im
Optional können Sie Cluster Health Scanner (CHS) für den Cluster aktivieren. CHS prüft den Zustand Ihrer GPU-Cluster, indem Tests ausgeführt werden, um zu prüfen, ob die Cluster bereit sind, Ihre Arbeitslasten auszuführen. Um CHS zu aktivieren, nehmen Sie die folgenden Änderungen in der Datei
examples/gke-a4/gke-a4-deployment.yamlvor:Legen Sie im Block
varsdas Feldenable_periodic_health_checksauftruefest.Standardmäßig werden die Healthchecks jeden Sonntag um 00:00 Uhr PST ausgeführt. Wenn Sie diese Einstellung ändern möchten, legen Sie im Block
varsdas Feldhealth_check_scheduleauf einen geeigneten Wert im Cron-Format fest.
Zeitplan im Cron-Format:none * * * * * # | | | | | # | | | | day of the week (0-6) (Sunday to Saturday) # | | | month (1-12) # | | day of the month (1-31) # | hour (0-23) # minute (0-59)
Generieren Sie Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), um Zugriff auf Terraform zu gewähren. Wenn Sie Cloud Shell verwenden, können Sie den folgenden Befehl ausführen:
gcloud auth application-default loginStellen Sie den Blueprint bereit, um die GKE-Infrastruktur mit A4-Maschinentypen bereitzustellen:
cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4/gke-a4-deployment.yaml \ examples/gke-a4/gke-a4.yamlWählen Sie bei entsprechender Aufforderung Anwenden aus, um das Blueprint bereitzustellen.
- Mit dem Blueprint werden VPC-Netzwerke, ein GPU-RDMA-VPC-Netzwerk, Dienstkonten, ein Cluster und ein Knotenpool erstellt.
- Zur Unterstützung der Jobvorlage
fio-bench-job-templateim Blueprint werdenGoogle Cloud -Buckets, Netzwerkspeicher und Ressourcen für persistente Volumes erstellt.
A3 Ultra
- Cloud Shell starten Sie können eine andere Umgebung verwenden. Wir empfehlen jedoch Cloud Shell, da die Abhängigkeiten für Cluster Toolkit bereits vorinstalliert sind. Wenn Sie Cloud Shell nicht verwenden möchten, folgen Sie der Anleitung zum Installieren von Abhängigkeiten, um eine andere Umgebung vorzubereiten.
Klonen Sie das Cluster-Toolkit aus dem Git-Repository:
cd ~ git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.gitCluster Toolkit installieren:
cd cluster-toolkit && git checkout main && makeErstellen Sie einen Cloud Storage-Bucket zum Speichern des Status der Terraform-Bereitstellung:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioningErsetzen Sie die folgenden Variablen:
BUCKET_NAME: Der Name des neuen Cloud Storage-Bucket.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: die Computing-Region, in der Sie den Zustand der Terraform-Bereitstellung speichern möchten.
Welche Dateien Sie zum Erstellen eines Clusters bearbeiten müssen, hängt von der Verbrauchsoption ab, die Sie für Ihre Bereitstellung verwenden. Wählen Sie den Tab aus, der dem Bereitstellungsmodell Ihrer Verbrauchsoption entspricht.
Reservierungsgebunden
Ersetzen Sie im
examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Variablen in den Abschnittenterraform_backend_defaultsundvarsdurch die spezifischen Werte für Ihre Bereitstellung:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Computing-Zone für den Knotenpool mit A3-Ultra-Maschinen. Diese Zone sollte mit der Zone übereinstimmen, in der Maschinen in Ihrer Reservierung verfügbar sind.NODE_COUNT: die Anzahl der A3 Ultra-Knoten in Ihrem Cluster.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.Verwenden Sie für das Feld
reservationeinen der folgenden Werte, je nachdem, ob Sie beim Bereitstellen des Knotenpools auf bestimmte Blöcke in einer Reservierung abzielen möchten:- Wenn Sie den Knotenpool an einer beliebigen Stelle in der Reservierung platzieren möchten, geben Sie den Namen Ihrer Reservierung (
RESERVATION_NAME) an. Wenn Sie einen bestimmten Block in Ihrer Reservierung ansprechen möchten, verwenden Sie die Reservierungs- und Blocknamen im folgenden Format:
RESERVATION_NAME/reservationBlocks/BLOCK_NAME
Wenn Sie nicht wissen, welche Blöcke in Ihrer Reservierung verfügbar sind, lesen Sie den Abschnitt Reservierungstopologie ansehen.
- Wenn Sie den Knotenpool an einer beliebigen Stelle in der Reservierung platzieren möchten, geben Sie den Namen Ihrer Reservierung (
Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und der A3 Ultra-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.A3ULTRA_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A3 Ultra-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Wenn Sie die erweiterten Einstellungen ändern möchten, bearbeiten Sie
examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml.Flex-Start
Ersetzen Sie im
examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Variablen in den Abschnittenterraform_backend_defaultsundvarsdurch die spezifischen Werte für Ihre Bereitstellung:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Computing-Zone für den Knotenpool mit A3-Ultra-Maschinen.static_node_countentfernen.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.- Entfernen Sie das Feld
reservationund ersetzen Sie es durchenable_flex_start: true. Fügen Sie in der nächsten Zeileenable_queued_provisioning: truehinzu, wenn Sie auch die Bereitstellung in der Warteschlange verwenden möchten. Weitere Informationen finden Sie unter Knotenpools mit Flex-Start und in die Warteschlange gestellter Bereitstellung verwenden. Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und der A3 Ultra-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.A3ULTRA_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A3 Ultra-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Nehmen Sie im
examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml-Blueprint aus dem GitHub-Repository die folgenden Änderungen vor:- Entfernen Sie im Block
varsden Wertstatic_node_count. - Aktualisieren Sie im Block
varsdieversion_prefix-Nummer auf"1.32."oder höher. Wenn Sie Flex-Start in GKE verwenden möchten, muss Ihr Cluster die Version 1.32.2-gke.1652000 oder höher verwenden. - Ersetzen Sie im
vars-Block den gesamtenreservation-Block (einschließlich derreservation-Zeile) durchenable_flex_start: trueund optionalenable_queued_provisioning: true. - Entfernen Sie im Block
varsdie folgende Zeile:kueue_configuration_path: $(ghpc_stage("./kueue-configuration.yaml.tftpl")). - Entfernen Sie unter
id: a3-ultragpu-pooldie folgende Zeile:static_node_count: $(vars.static_node_count). Entfernen Sie unter
id: a3-ultragpu-poolden Blockreservation_affinity. Ersetzen Sie diesen Block durch die folgenden Zeilen:enable_flex_start: $(vars.enable_flex_start)auto_repair: false- Wenn Sie die Bereitstellung in der Warteschlange aktivieren möchten, fügen Sie die folgenden zusätzlichen Zeilen hinzu:
enable_queued_provisioning: $(vars.enable_queued_provisioning)autoscaling_total_min_nodes: 0
Entfernen Sie unter
id: workload-manager-installden folgenden Block:config_path: $(vars.kueue_configuration_path) config_template_vars: num_gpus: $(a4-pool.static_gpu_count) accelerator_type: $(vars.accelerator_type)So richten Sie den flexiblen Start mit der Bereitstellung in der Warteschlange ein:
Fügen Sie dem
vars-Blockgpu_nominal_quota: NOMINAL_QUOTAhinzu. Der Wertgpu_nominal_quotawird verwendet, um dienominalQuotavon GPUs in derClusterQueue-Spezifikation festzulegen. In diesem Beispiel lässtClusterQueuenur Arbeitslasten zu, wenn die Summe der GPU-Anforderungen kleiner oder gleich dem Wert vonNOMINAL_QUOTAist. Weitere Informationen zuClusterQueuefinden Sie im folgenden Kueue-Dokument zur Clusterwarteschlange.Aktualisieren Sie den Block
kueueso:kueue: install: true config_path: $(vars.kueue_configuration_path) config_template_vars: num_gpus: $(vars.gpu_nominal_quota)Ersetzen Sie den Inhalt der Datei
kueue-configuration.yaml.tftpldurch Folgendes:apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: "default-flavor" --- apiVersion: kueue.x-k8s.io/v1beta1 kind: AdmissionCheck metadata: name: dws-prov spec: controllerName: kueue.x-k8s.io/provisioning-request parameters: apiGroup: kueue.x-k8s.io kind: ProvisioningRequestConfig name: dws-config --- apiVersion: kueue.x-k8s.io/v1beta1 kind: ProvisioningRequestConfig metadata: name: dws-config spec: provisioningClassName: queued-provisioning.gke.io managedResources: - nvidia.com/gpu --- apiVersion: kueue.x-k8s.io/v1beta1 kind: ClusterQueue metadata: name: "dws-cluster-queue" spec: namespaceSelector: {} resourceGroups: - coveredResources: ["nvidia.com/gpu"] flavors: - name: "default-flavor" resources: - name: "nvidia.com/gpu" nominalQuota: ${num_gpus} admissionChecks: - dws-prov --- apiVersion: kueue.x-k8s.io/v1beta1 kind: LocalQueue metadata: namespace: "default" name: "dws-local-queue" spec: clusterQueue: "dws-cluster-queue" ---
Ersetzen Sie im Feld
id: job-templatedie Variablenode_countdurch2.
- Entfernen Sie im Block
Spot
Füllen Sie im
examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml-Blueprint aus dem GitHub-Repository die folgenden Einstellungen in den Abschnittenterraform_backend_defaultsundvarsentsprechend den spezifischen Werten für Ihre Bereitstellung aus:DEPLOYMENT_NAME: ein eindeutiger Name für die Bereitstellung, der zwischen 6 und 30 Zeichen lang sein muss. Wenn der Bereitstellungsname innerhalb eines Projekts nicht eindeutig ist, schlägt die Clustererstellung fehl.BUCKET_NAME: der Name des Cloud Storage-Bucket, den Sie im vorherigen Schritt erstellt haben.PROJECT_ID: Projekt-ID in Google Cloud .COMPUTE_REGION: die Compute-Region für den Cluster.COMPUTE_ZONE: Die Computing-Zone für den Knotenpool mit A3-Ultra-Maschinen.STATIC_NODE_COUNT: Die Anzahl der A3 Ultra-Knoten in Ihrem Cluster.IP_ADDRESS/SUFFIX: Der IP-Adressbereich, der eine Verbindung mit dem Cluster herstellen darf. Dieser CIDR-Block muss die IP-Adresse des Computers enthalten, den Sie zum Aufrufen von Terraform verwenden möchten. Weitere Informationen finden Sie unter Funktionsweise autorisierter Netzwerke.- Ersetzen Sie den gesamten
reservation-Block (einschließlich derreservation-Zeile selbst) durchspot: true. Legen Sie die Größen der Bootlaufwerke für jeden Knoten des Systems und der A3 Ultra-Knotenpools fest. Die benötigte Festplattengröße hängt von Ihrem Anwendungsfall ab. Wenn Sie das Laufwerk beispielsweise als Cache verwenden, um die Latenz beim wiederholten Abrufen eines Images zu verringern, können Sie eine größere Laufwerkgröße festlegen, um Ihr Framework, Modell oder Container-Image aufzunehmen:
SYSTEM_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des Systemknotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.A3ULTRA_NODE_POOL_DISK_SIZE_GB: Die Größe des Bootlaufwerks für jeden Knoten des A3 Ultra-Knotenpools. Die kleinste zulässige Festplattengröße ist10. Der Standardwert ist100.
Nehmen Sie im
examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml-Blueprint aus dem GitHub-Repository die folgenden Änderungen vor:- Ersetzen Sie im
vars-Block den gesamtenreservation-Block (einschließlich der Zeilereservationselbst) durchspot: true. Entfernen Sie unter
id: a3-ultragpu-poolden Blockreservation_affinity. Ersetzen Sie diesen Block durch die folgende Zeile:spot: $(vars.spot)
- Ersetzen Sie im
Optional können Sie Cluster Health Scanner (CHS) für den Cluster aktivieren. CHS prüft den Zustand Ihrer GPU-Cluster, indem Tests ausgeführt werden, um zu prüfen, ob die Cluster bereit sind, Ihre Arbeitslasten auszuführen. Um CHS zu aktivieren, nehmen Sie die folgenden Änderungen in der Datei
examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yamlvor:Legen Sie im Block
varsdas Feldenable_periodic_health_checksauftruefest.Standardmäßig werden die Healthchecks jeden Sonntag um 00:00 Uhr PST ausgeführt. Wenn Sie diese Einstellung ändern möchten, legen Sie im Block
varsdas Feldhealth_check_scheduleauf einen geeigneten Wert im Cron-Format fest.
Zeitplan im Cron-Format:none * * * * * # | | | | | # | | | | day of the week (0-6) (Sunday to Saturday) # | | | month (1-12) # | | day of the month (1-31) # | hour (0-23) # minute (0-59)
Generieren Sie Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), um Zugriff auf Terraform zu gewähren. Wenn Sie Cloud Shell verwenden, können Sie den folgenden Befehl ausführen:
gcloud auth application-default loginStellen Sie den Blueprint bereit, um die GKE-Infrastruktur mit A3-Ultra-Maschinentypen bereitzustellen:
cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml \ examples/gke-a3-ultragpu/gke-a3-ultragpu.yamlWählen Sie bei entsprechender Aufforderung Anwenden aus, um das Blueprint bereitzustellen.
- Mit dem Blueprint werden VPC-Netzwerke, ein GPU-RDMA-VPC-Netzwerk, Dienstkonten, ein Cluster und ein Knotenpool erstellt.
- Zur Unterstützung der Jobvorlage
fio-bench-job-templateim Blueprint werdenGoogle Cloud -Buckets, Netzwerkspeicher und Ressourcen für persistente Volumes erstellt.
Cluster erstellen und Arbeitslasten mit XPK ausführen
Mit dem Accelerated Processing Kit (XPK) können Sie Cluster schnell bereitstellen und nutzen. XPK generiert vorkonfigurierte, für das Training optimierte Infrastruktur, die sich ideal eignet, wenn die Ausführung von Arbeitslasten Ihr Hauptaugenmerk ist.
Cluster erstellen und Arbeitslasten mit A3 Ultra-VMs mit XPK ausführen:
- Installieren Sie die erforderlichen Tools, um die XPK-Voraussetzungen zu erfüllen.
- Kopieren Sie die Versionsnummer des letzten getaggten Releases von XPK, z. B. „v0.8.0“. Ersetzen Sie im folgenden Befehl
XPK_TAGdurch die aktuelle XPK-Versionsnummer. Öffnen Sie ein Shell-Fenster auf einem Linux-Computer und geben Sie die folgenden Befehle ein, um XPK aus dem Git-Repository zu klonen und die erforderlichen Pakete zu installieren:
## Setup virtual environment. VENV_DIR=~/venvp3 python3 -m venv $VENV_DIR source $VENV_DIR/bin/activate ## Clone the repository. git clone --branch XPK_TAG https://github.com/google/xpk.git cd xpk ## Install required packages make install && export PATH=$PATH:$PWD/binStandardcluster mit A3-Ultra-VMs erstellen Sie können die Knoten des Clusters mit reservierter Kapazität bereitstellen:
python3 xpk.py cluster create \ --cluster=CLUSTER_NAME \ --device-type=h200-141gb-8 \ --zone=COMPUTE_ZONE \ --project=PROJECT_ID \ --num-nodes=NUM_NODES \ --reservation=RESERVATION_NAMEErsetzen Sie die folgenden Variablen:
CLUSTER_NAME: ein Name für den Cluster.COMPUTE_ZONE: die Computing-Zone für den Knotenpool von A3-Ultra-Maschinen. Wenn Sie reservierte Kapazität verwenden möchten, müssen Sie die Zone verwenden, in der Sie die Kapazität reserviert haben. Im Allgemeinen empfehlen wir, eine Zone in der Nähe des Nutzers auszuwählen, um die Latenz zu minimieren.PROJECT_ID: Ihre Google Cloud Projekt-ID.NUM_NODES: die Anzahl der Worker-Knoten im Knotenpool.RESERVATION_NAME: der Name Ihrer Reservierung.XPK bietet zusätzliche Argumente für die Clustererstellung, einschließlich der Argumente zum Erstellen privater Cluster, zum Erstellen von Vertex AI Tensorboards und zum Verwenden der automatischen Knotenbereitstellung. Weitere Informationen finden Sie im Leitfaden zum Erstellen von Clustern für XPK.
Prüfen Sie, ob der Cluster erfolgreich erstellt wurde:
python3 xpk.py cluster list --zone=COMPUTE_ZONE --project=PROJECT_IDOptional: Führen Sie eine Arbeitslast aus, um die Clusterumgebung zu testen:
python3 xpk.py workload create \ --workload WORKLOAD_NAME --command "echo goodbye" \ --cluster CLUSTER_NAME \ --device-type=h200-141gb-8 \ --num-nodes=WORKLOAD_NUM_NODES \ --zone=COMPUTE_ZONE \ --project=PROJECT_IDErsetzen Sie die folgenden Variablen:
WORKLOAD_NAME: Name Ihrer Arbeitslast.CLUSTER_NAMEist der Name des Clusters.WORKLOAD_NUM_NODES: Anzahl der Worker-Knoten, die für die Ausführung der Arbeitslast verwendet werden.COMPUTE_ZONE: die Compute-Zone für den Knotenpool von A3 Ultra-Maschinen.PROJECT_ID: Ihre Google Cloud Projekt-ID.
Netzwerkleistung testen
Wir empfehlen, die Funktionalität der bereitgestellten Cluster zu prüfen. Verwenden Sie dazu NCCL/gIB-Tests, die NVIDIA Collective Communications Library (NCCL)-Tests sind, die für die Google-Umgebung optimiert wurden.
Reproduzierbare Benchmarks ausführen
Sie können Benchmarks für das Vortraining großer Open-Source-Modelle für maschinelles Lernen auf A4- und A3-Ultra-VMs in GKE reproduzieren.
Jedes Rezept enthält eine Anleitung für die folgenden Aufgaben:
- Bereiten Sie Ihre Umgebung vor.
- Führen Sie den Benchmark aus.
- Analysieren Sie die Benchmark-Ergebnisse. Dazu gehören die Benchmark-Ergebnisse und detaillierte Protokolle für die weitere Analyse.
Eine Liste aller verfügbaren Rezepturen finden Sie im GitHub-Repository für GPU-Rezepturen.
| Modelle | Framework | Schema |
|---|---|---|
| Llama-3.1-70B | MaxText | Arbeitslast mit 32 Knoten |
| Llama-3.1-70B | NeMo | Arbeitslast mit 32 Knoten |
| Mixtral-8-7B | NeMo | Arbeitslast mit 32 Knoten |
Von Cluster Toolkit erstellte Ressourcen bereinigen
So vermeiden Sie wiederkehrende Gebühren für die auf dieser Seite verwendeten Ressourcen: Bereinigen Sie die vom Cluster Toolkit bereitgestellten Ressourcen, einschließlich der VPC-Netzwerke und des GKE-Cluster:
cd ~/cluster-toolkit
./gcluster destroy CLUSTER_NAME/
Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters.
Bei Clustern, die mit dem Cluster-Toolkit erstellt wurden, basiert der Clustername auf DEPLOYMENT_NAME.
Nächste Schritte
- Informationen zum Planen von Arbeitslasten in Ihren GKE-Clustern mit TAS und Kueue finden Sie unter GKE-Arbeitslasten mit Topology Aware Scheduling planen.
- Informationen zum Verwalten häufiger Ereignisse, die für GKE-Cluster und KI-Arbeitslasten relevant sind, finden Sie unter KI-optimierte GKE-Cluster verwalten.
- Informationen zum Testen Ihrer Umgebung auf korrekte Einrichtung und Optimierung finden Sie unter Übersicht zur Optimierung der Clusternetzwerke.