Auf dieser Seite wird beschrieben, wie Sie GPU-Containerarbeitslasten in der Google Distributed Cloud (GDC) Sandbox AI Optimized SKU bereitstellen.
GPU-Containerarbeitslasten bereitstellen
Die GDC Sandbox AI Optimized SKU enthält vier NVIDIA H100 80 GB HBM3-GPUs im Cluster der Organisation. Auf diese GPUs kann mit dem 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 GDC Sandbox AI Optimized SKU sind mit einem vorkonfigurierten
Projekt verknüpft: "sandbox-gpu-project". Sie müssen Ihren Container mit diesem Projekt im Cluster org-1-infra bereitstellen, um die GPUs zu verwenden.
Hinweis
Wenn Sie Befehle für den Cluster der Organisation ausführen möchten, stellen Sie sicher, dass Sie die kubeconfig-Datei des Clusters
org-1-infrahaben, wie unter Mit Clustern arbeiten beschrieben:- Konfigurieren und authentifizieren Sie sich mit der
gdcloud-Befehlszeile. - Generieren Sie die kubeconfig-Datei für den Cluster der Organisation und weisen Sie den 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 ist 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-projectDamit Netzwerk-Traffic zu Ihrem Container zugelassen wird, benötigen Sie eine Netzwerkrichtlinie für das Projekt. Weitere Informationen finden Sie unter Netzwerkrichtlinie erstellen.
Container für die Verwendung 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-project können insgesamt bis zu vier GPUs im gesamten 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
Container benötigen außerdem zusätzliche Berechtigungen für den Zugriff auf GPUs. Fügen Sie für jeden Container, der GPUs anfordert, einen
.containers.securityContexthinzu, der dem ContainersecurityContext.seLinuxOptionsvom Typunconfined_tgewährt.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}