Utiliser le P6e- GB2 00 UltraServers avec Amazon EKS - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser le P6e- GB2 00 UltraServers avec Amazon EKS

Cette rubrique décrit comment configurer et utiliser Amazon EKS avec GB2 P6e-00 UltraServers. Le type d'p6e-gb200.36xlargeinstance avec 4 NVIDIA Blackwell n' GPUs est disponible qu'en GB2 P6e-00. UltraServers Il existe deux types de GB2 P6e-00 UltraServers. u-p6e-gb200x36 UltraServer Il a 9 p6e-gb200.36xlarge instances et 18 p6e-gb200.36xlarge instances. u-p6e-gb200x72 UltraServer

Pour en savoir plus, consultez la UltraServers page Web Amazon EC2 P6e- GB2 00.

Considérations

  • Amazon EKS prend en charge le protocole GB2 P6e-00 UltraServers pour les versions 1.33 et supérieures de Kubernetes. Cette version de Kubernetes prend en charge l'allocation dynamique des ressources (DRA), activée par défaut dans EKS et dans l'accélérateur AL2023 optimisé pour EKS. AMIs Le DRA est obligatoire pour utiliser le GB2 P6e-00 UltraServers avec EKS. Le DRA n'est pas pris en charge en mode Karpenter ou EKS Auto, et il est recommandé d'utiliser des groupes de nœuds autogérés par EKS ou des groupes de nœuds gérés par EKS lorsque vous utilisez le P6e- GB2 00 UltraServers avec EKS.

  • Les P6e- GB2 00 UltraServers sont disponibles via EC2 Capacity Blocks for ML. Consultez Gérez les ressources informatiques pour les AI/ML charges de travail sur Amazon EKS pour plus d'informations sur le lancement de nœuds EKS avec des blocs de capacité.

  • Lorsque vous utilisez des groupes de nœuds gérés par EKS avec des blocs de capacité, vous devez utiliser des modèles de lancement personnalisés. Lors de la mise à niveau de groupes de nœuds gérés par EKS avec P6e- GB2 00 UltraServers, vous devez définir la taille souhaitée du groupe de nœuds 0 avant la mise à niveau.

  • Il est recommandé d'utiliser la variante NVIDIA AL2 023 ARM de l'accélérateur optimisé pour EKS. AMIs Cette AMI inclut les composants de nœud et la configuration requis pour fonctionner avec GB2 P6e-00 UltraServers. Si vous décidez de créer votre propre AMI, vous êtes responsable de l'installation et de la validation de la compatibilité du nœud et du logiciel système, y compris les pilotes. Pour de plus amples informations, veuillez consulter Utiliser l'accélérateur optimisé pour EKS AMIs pour les instances GPU.

  • Il est recommandé d'utiliser la version AMI optimisée pour EKS v20251103 ou une version ultérieure, qui inclut la version 580 du pilote NVIDIA. Cette version du pilote NVIDIA permet à la mémoire CDMM (Coherent Driver-Based Memory Memory) de remédier à un éventuel sursignalement de mémoire. Lorsque CDMM est activé, les fonctionnalités suivantes ne sont pas prises en charge : GPU NVIDIA Multi-Instance (MIG) et vGPU. Pour plus d'informations sur le CDMM, consultez la section Gestion de la mémoire basée sur le pilote NVIDIA Coherent (CDMM).

  • Lorsque vous utilisez l'opérateur GPU NVIDIA avec l'AMI AL2 NVIDIA 023 optimisée pour EKS, vous devez désactiver l'installation du pilote et du kit d'outils par l'opérateur, car ceux-ci sont déjà inclus dans l'AMI. Les AL2 023 NVIDIA optimisés pour EKS AMIs n'incluent pas le plug-in de périphérique NVIDIA Kubernetes ni le pilote NVIDIA DRA, et ceux-ci doivent être installés séparément.

  • Chaque p6e-gb200.36xlarge instance peut être configurée avec un maximum de 17 cartes réseau et peut utiliser l'EFA pour la communication entre les deux UltraServers. Le trafic réseau peut se croiser UltraServers, mais pour des performances optimales, il est recommandé de planifier les charges de travail de la même manière en UltraServer tirant parti de l'IMEX pour les communications intra-GPU. UltraServer Pour plus d'informations, consultez la section Configuration EFA pour les instances P6e- GB2 00.

  • Chaque p6e-gb200.36xlarge instance dispose de 3 fois 7,5 To de stockage d'instance. Par défaut, l'AMI optimisée pour EKS ne formate ni ne monte les magasins d'instances. Le stockage éphémère du nœud peut être partagé entre les pods qui demandent un stockage éphémère et les images des conteneurs téléchargées sur le nœud. Si vous utilisez l'AMI AL2 023 optimisée pour EKS, celle-ci peut être configurée dans le cadre du bootstrap des nœuds dans les données utilisateur en définissant la politique NodeConfigde stockage local de l'instance sur RAID0. Le réglage sur RAID0 répartit l'instance pour stocker et configurer le runtime du conteneur et le kubelet pour utiliser ce stockage éphémère.

Éléments

Les composants suivants sont recommandés pour exécuter des charges de travail sur EKS avec le GB2 P6e-00. UltraServers Vous pouvez éventuellement utiliser l'opérateur GPU NVIDIA pour installer les composants du nœud NVIDIA. Lorsque vous utilisez l'opérateur GPU NVIDIA avec l'AMI AL2 NVIDIA 023 optimisée pour EKS, vous devez désactiver l'installation du pilote et du kit d'outils par l'opérateur, car ceux-ci sont déjà inclus dans l'AMI.

Pile Composant

AMI accélérée optimisée pour EKS

Noyau 6.12

pilote de carte graphique NVIDIA

Pilote en mode utilisateur NVIDIA CUDA

Boîte à outils pour conteneurs NVIDIA

Gestionnaire de tissus NVIDIA

pilote NVIDIA IMEX

Gestionnaire de NVLink sous-réseaux NVIDIA

pilote EFA

Composants exécutés sur le nœud

PVC CNI

Plug-in pour appareil EFA

Plug-in pour appareil NVIDIA K8s

pilote NVIDIA DRA

Découverte des fonctionnalités des nœuds NVIDIA (NFD)

Découverte des fonctionnalités du GPU NVIDIA (GFD)

Les composants du nœud présentés dans le tableau ci-dessus exécutent les fonctions suivantes :

  • VPC CNI : alloue le VPC IPs comme interface réseau principale pour les pods exécutés sur EKS

  • Plug-in d'appareil EFA : alloue des appareils EFA en tant que réseaux secondaires pour les pods fonctionnant sur EKS. Responsable du trafic réseau sur GB2 P6e-00 UltraServers. Pour les charges de travail à nœuds multiples, pour les flux GPU-to-GPU internes et de UltraServer canalisation sur plusieurs nœuds. NVLink

  • Plug-in pour appareils NVIDIA Kubernetes : alloue en GPUs tant qu'appareils aux pods exécutés sur EKS. Il est recommandé d'utiliser le plug-in de périphérique NVIDIA Kubernetes jusqu'à ce que la fonctionnalité d'allocation du GPU du pilote NVIDIA DRA soit terminée à la fin de la phase expérimentale. Consultez les versions du pilote NVIDIA DRA pour obtenir des informations actualisées.

  • Pilote NVIDIA DRA : active des ressources ComputeDomain personnalisées qui facilitent la création de domaines IMEX qui suivent les charges de travail exécutées sur P6e-00. GB2 UltraServers

    • La ComputeDomain ressource décrit un domaine IMEX (Internode Memory Exchange). Lorsque des charges de travail dotées ResourceClaim de la forme a ComputeDomain sont déployées sur le cluster, le pilote NVIDIA DRA crée automatiquement un IMEX DaemonSet qui s'exécute sur les nœuds correspondants et établit le ou les canaux IMEX entre les nœuds avant le démarrage de la charge de travail. Pour en savoir plus sur l'IMEX, consultez la présentation de NVIDIA IMEX pour les systèmes à nœuds multiples NVLink .

    • Le pilote NVIDIA DRA utilise une étiquette d'identification par clic (nvidia.com/gpu.clique) appliquée par NVIDIA GFD qui transmet la connaissance de la topologie et du domaine du réseau. NVLink

    • Il est recommandé de créer une tâche ComputeDomain par charge de travail.

  • NVIDIA Node Feature Discovery (NFD) : dépendance requise pour que le GFD applique des étiquettes de nœuds en fonction des attributs découverts au niveau du nœud.

  • NVIDIA GPU Feature Discovery (GFD) : applique une étiquette topologique standard NVIDIA appelée nvidia.com/gpu.clique aux nœuds. Les nœuds d'un même nœud nvidia.com/gpu.clique sont accessibles à plusieurs NVLink nœuds, et vous pouvez utiliser les affinités des modules dans votre application pour planifier des nœuds vers le même domaine. NVlink

Procédure

La section suivante suppose que vous disposez d'un cluster EKS exécutant Kubernetes version 1.33 ou supérieure avec un ou plusieurs groupes de nœuds avec GB2 p6E-00 UltraServers exécutant l'AMI accélérée AL2 023 ARM NVIDIA EKS optimisée pour NVIDIA EKS. Consultez les liens ci-dessous Gérez les ressources informatiques pour les AI/ML charges de travail sur Amazon EKS pour connaître les étapes préalables relatives aux nœuds autogérés et aux groupes de nœuds gérés par EKS.

La procédure suivante utilise les composants ci-dessous.

Name Version Description

Opérateur GPU NVIDIA

25,3,4 et plus

Pour la gestion du cycle de vie des plug-ins requis tels que le plug-in pour appareils NVIDIA Kubernetes et le NFD/GFD.

Pilotes NVIDIA DRA

25,8,0 et plus

Pour ComputeDomain CRDs et gestion de domaines IMEX.

Plug-in pour appareil EFA

0,5,14 et plus

Pour la UltraServer communication croisée.

Installer l'opérateur GPU NVIDIA

L'opérateur GPU NVIDIA simplifie la gestion des composants nécessaires à l'utilisation GPUs dans les clusters Kubernetes. Comme le pilote GPU NVIDIA et le kit d'outils de conteneur sont installés dans le cadre de l'AMI accélérée optimisée pour EKS, ils doivent être définis false dans la configuration des valeurs Helm.

  1. Créez un fichier de valeurs Helm nommé gpu-operator-values.yaml avec la configuration suivante.

    devicePlugin: enabled: true nfd: enabled: true gfd: enabled: true driver: enabled: false toolkit: enabled: false migManager: enabled: false
  2. Installez l'opérateur GPU NVIDIA pour votre cluster à l'aide du gpu-operator-values.yaml fichier que vous avez créé à l'étape précédente.

    helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo update
    helm install gpu-operator nvidia/gpu-operator \ --namespace gpu-operator \ --create-namespace \ --version v25.3.4 \ --values gpu-operator-values.yaml

Installez le pilote NVIDIA DRA

À partir de la version opérateur du GPU NVIDIAv25.3.4, le pilote NVIDIA DRA doit être installé séparément. Il est recommandé de suivre les notes de mise à jour des opérateurs du GPU NVIDIA, car cela pourrait changer dans une future version.

  1. Créez un fichier de valeurs Helm nommé dra-values.yaml avec la configuration suivante. Notez le nodeAffinity et tolerations qui configure le pilote DRA pour qu'il soit déployé uniquement sur des nœuds dotés d'un GPU NVIDIA.

    resources: gpus: enabled: false # set to false to disable experimental gpu support computeDomains: enabled: true controller: nodeSelector: null affinity: null tolerations: [] kubeletPlugin: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "nvidia.com/gpu.present" operator: In values: - "true" tolerations: - key: "nvidia.com/gpu" operator: Exists effect: NoSchedule
  2. Installez le pilote NVIDIA DRA pour votre cluster à l'aide du dra-values.yaml fichier que vous avez créé à l'étape précédente.

    helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo update
    helm install nvidia-dra-driver-gpu nvidia/nvidia-dra-driver-gpu \ --version="25.8.0" \ --namespace nvidia-dra-driver-gpu \ --create-namespace \ -f dra-values.yaml
  3. Après l'installation, le pilote DRA crée DeviceClass des ressources qui permettent à Kubernetes de comprendre et d'allouer des ComputeDomain ressources, rendant ainsi possible la gestion IMEX pour les charges de travail GPU distribuées sur P6e-00. GB2 UltraServers

    Vérifiez que les ressources DRA sont disponibles à l'aide des commandes suivantes.

    kubectl api-resources | grep resource.k8s.io
    deviceclasses resource.k8s.io/v1 false DeviceClass resourceclaims resource.k8s.io/v1 true ResourceClaim resourceclaimtemplates resource.k8s.io/v1 true ResourceClaimTemplate resourceslices resource.k8s.io/v1 false ResourceSlice
    kubectl get deviceclasses
    NAME compute-domain-daemon.nvidia.com compute-domain-default-channel.nvidia.com

Installez le plugin pour appareil EFA

Pour utiliser la communication EFA entre eux UltraServers, vous devez installer le plug-in d'appareil Kubernetes pour EFA. Les instances P6e- GB2 00 peuvent être configurées avec un maximum de 17 cartes réseau et le NCI principal (indice 0) doit être de type interface et prendre en charge jusqu'à 100 Gbit/s de bande passante ENA. Configurez vos interfaces EFA et ENA selon vos besoins lors du provisionnement des nœuds. Consultez la AWS documentation relative à la configuration EFA pour une instance P6e- GB2 00 pour plus de détails sur la configuration EFA.

  1. Créez un fichier de valeurs Helm nommé efa-values.yaml avec la configuration suivante.

    tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule
  2. Installez l'opérateur NVIDIA DRA pour votre cluster à l'aide du dra-values.yaml fichier que vous avez créé à l'étape précédente.

    helm repo add eks https://aws.github.io/eks-charts helm repo update
    helm install efa eks/aws-efa-k8s-device-plugin -n kube-system \ --version="0.5.14" \ -f efa-values.yaml

    Par exemple, si vous avez configuré vos instances avec une interface EFA uniquement dans chaque groupe NCI, lors de la description d'un nœud, il est prévu de voir 4 périphériques EFA allouables par nœud.

    kubectl describe node/<gb200-node-name>
    Capacity: ... vpc.amazonaws.com/efa: 4 Allocatable: ... vpc.amazonaws.com/efa: 4

Pour un test NCCL NVLINK multi-nœuds et d'autres microbenchmarks, consultez le référentiel. awesome-distributed-training GitHub Les étapes suivantes montrent comment exécuter un NVLink test multi-nœuds avec nvbandwidth.

  1. Pour exécuter un test de bande passante multi-nœuds sur deux nœuds du NVL72 domaine, installez d'abord l'opérateur MPI :

    kubectl create -f https://github.com/kubeflow/mpi-operator/releases/download/v0.7.0/mpi-operator.yaml
  2. Créez un fichier de valeurs Helm nommé nvbandwidth-test-job.yaml qui définit le manifeste de test. Notez l'affinité du nvidia.com/gpu.clique pod pour planifier les travailleurs dans le même NVLink domaine accessible à plusieurs nœuds NVLink .

    À partir de la version du pilote NVIDIA DRA, v25.8.0 ComputeDomains elles sont élastiques et .spec.numNodes peuvent être définies 0 dans la ComputeDomain définition. Consultez les dernières notes de mise à jour du pilote NVIDIA DRA.

    --- apiVersion: resource.nvidia.com/v1beta1 kind: ComputeDomain metadata: name: nvbandwidth-test-compute-domain spec: numNodes: 0 # This can be set to 0 from NVIDIA DRA Driver version v25.8.0+ channel: resourceClaimTemplate: name: nvbandwidth-test-compute-domain-channel --- apiVersion: kubeflow.org/v2beta1 kind: MPIJob metadata: name: nvbandwidth-test spec: slotsPerWorker: 4 # 4 GPUs per worker node launcherCreationPolicy: WaitForWorkersReady runPolicy: cleanPodPolicy: Running sshAuthMountPath: /home/mpiuser/.ssh mpiReplicaSpecs: Launcher: replicas: 1 template: metadata: labels: nvbandwidth-test-replica: mpi-launcher spec: containers: - image: ghcr.io/nvidia/k8s-samples:nvbandwidth-v0.7-8d103163 name: mpi-launcher securityContext: runAsUser: 1000 command: - mpirun args: - --bind-to - core - --map-by - ppr:4:node - -np - "8" - --report-bindings - -q - nvbandwidth - -t - multinode_device_to_device_memcpy_read_ce Worker: replicas: 2 # 2 worker nodes template: metadata: labels: nvbandwidth-test-replica: mpi-worker spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: nvbandwidth-test-replica operator: In values: - mpi-worker topologyKey: nvidia.com/gpu.clique containers: - image: ghcr.io/nvidia/k8s-samples:nvbandwidth-v0.7-8d103163 name: mpi-worker securityContext: runAsUser: 1000 env: command: - /usr/sbin/sshd args: - -De - -f - /home/mpiuser/.sshd_config resources: limits: nvidia.com/gpu: 4 # Request 4 GPUs per worker claims: - name: compute-domain-channel # Link to IMEX channel resourceClaims: - name: compute-domain-channel resourceClaimTemplateName: nvbandwidth-test-compute-domain-channel
  3. Créez le ComputeDomain et lancez-le avec la commande suivante.

    kubectl apply -f nvbandwidth-test-job.yaml
  4. ComputeDomain création, vous pouvez voir que la charge de travail ComputeDomain comporte deux nœuds :

    kubectl get computedomains.resource.nvidia.com -o yaml
    status: nodes: - cliqueID: <ClusterUUID>.<Clique ID> ipAddress: <node-ip> name: <node-hostname> - cliqueID: <ClusterUUID>.<Clique ID> ipAddress: <node-ip> name: <node-hostname> status: Ready
  5. Passez en revue les résultats de la tâche à l'aide de la commande suivante.

    kubectl logs --tail=-1 -l job-name=nvbandwidth-test-launcher
  6. Lorsque le test est terminé, supprimez-le à l'aide de la commande suivante.

    kubectl delete -f nvbandwidth-test-job.yaml