Auf dieser Seite wird beschrieben, wie Sie GPU-Containerarbeitslasten in der AI Optimized-SKU der Google Distributed Cloud (GDC) Sandbox bereitstellen.
GPU-Containerarbeitslasten bereitstellen
Die für KI optimierte GDC Sandbox-SKU umfasst vier NVIDIA H100 80 GB HBM3-GPUs im org-infra-Cluster. Auf diese GPUs kann über den Ressourcennamen nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3 zugegriffen werden. In diesem Abschnitt wird beschrieben, wie Sie eine Containerkonfiguration aktualisieren, um diese GPUs zu verwenden.
Die GPUs in der KI-optimierten SKU für GDC Sandbox sind mit einem vorkonfigurierten Projekt verknüpft: sandbox-gpu-project. Sie müssen Ihren Container mit diesem Projekt im org-1-infra-Cluster bereitstellen, um die GPUs zu nutzen.
Hinweise
Wenn Sie Befehle für den Infrastrukturcluster der Organisation ausführen möchten, müssen Sie die kubeconfig des
org-1-infra-Clusters haben, wie unter Mit Clustern arbeiten beschrieben:- Konfigurieren und authentifizieren Sie sich mit der
gdcloud-Befehlszeile. - Generieren Sie die kubeconfig-Datei für den Infrastrukturcluster der Organisation und weisen Sie ihren Pfad der Umgebungsvariable
KUBECONFIGzu.
- Konfigurieren und authentifizieren Sie sich mit der
Zum Ausführen der Arbeitslasten muss Ihnen die Rolle
sandbox-gpu-adminzugewiesen sein. Standardmäßig wird die Rolle dem Nutzerplatform-adminzugewiesen. Sie können die Rolle anderen Nutzern zuweisen, indem Sie sich alsplatform-adminanmelden und den folgenden Befehl ausführen:kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project
Container für die Nutzung von GPU-Ressourcen konfigurieren
Fügen Sie der Containerspezifikation die Felder
.containers.resources.requestsund.containers.resources.limitshinzu, um GPUs für die Arbeitslast anzufordern. Alle Container im Sandbox-GPU-Projekt können insgesamt bis zu 4 GPUs für das gesamte Projekt anfordern. Im folgenden Beispiel wird eine GPU als Teil der Containerspezifikation angefordert.apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
Für Container sind außerdem zusätzliche Berechtigungen für den Zugriff auf GPUs erforderlich. Fügen Sie jedem Container, der GPUs anfordert, eine
.containers.securityContext-GewährungsecurityContext.seLinuxOptionsvom Typunconfined_thinzu.apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 securityContext: seLinuxOptions: type: unconfined_tWenden Sie die Container-Manifestdatei an:
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}