Cette page explique comment déployer des charges de travail de conteneurs GPU sur la SKU optimisée pour l'IA de Google Distributed Cloud (GDC) Sandbox.
Déployer des charges de travail de conteneurs GPU
Le SKU GDC Sandbox AI Optimized inclut quatre GPU NVIDIA H100 80 Go HBM3 dans le cluster org-infra. Ces GPU sont accessibles à l'aide du nom de ressource nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3
. Cette section explique comment mettre à jour la configuration d'un conteneur pour utiliser ces GPU.
Les GPU du SKU optimisé pour l'IA GDC Sandbox sont associés à un projet préconfiguré, sandbox-gpu-project. Pour utiliser les GPU, vous devez déployer votre conteneur à l'aide de ce projet.
Avant de commencer
Pour exécuter des commandes sur le cluster d'infrastructure de l'organisation, assurez-vous de disposer du fichier kubeconfig du cluster
org-1-infra
, comme décrit dans Utiliser des clusters :- Configurez et authentifiez-vous avec la ligne de commande
gdcloud
. - générer le fichier kubeconfig pour le cluster d'infrastructure de l'organisation et attribuer son chemin d'accès à la variable d'environnement
KUBECONFIG
.
- Configurez et authentifiez-vous avec la ligne de commande
Pour exécuter les charges de travail, vous devez disposer du rôle
sandbox-gpu-admin
. Par défaut, le rôle est attribué à l'utilisateurplatform-admin
. Vous pouvez attribuer le rôle à d'autres utilisateurs en vous connectant en tant queplatform-admin
et en exécutant la commande suivante :kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project
Configurer un conteneur pour qu'il utilise des ressources GPU
Ajoutez les champs
.containers.resources.requests
et.containers.resources.limits
à la spécification de votre conteneur pour demander des GPU pour la charge de travail. Tous les conteneurs du projet sandbox-gpu-project peuvent demander jusqu'à quatre GPU au total pour l'ensemble du projet. L'exemple suivant demande un GPU dans la spécification du conteneur.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
Les conteneurs nécessitent également des autorisations supplémentaires pour accéder aux GPU. Pour chaque conteneur qui demande des GPU, ajoutez les autorisations suivantes à la spécification de conteneur :
securityContext: seLinuxOptions: type: unconfined_t
Appliquez votre fichier manifeste de conteneur :
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}