Verwenden Sie GB2 P6e-00 UltraServers mit Amazon EKS - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie GB2 P6e-00 UltraServers mit Amazon EKS

In diesem Thema wird beschrieben, wie Amazon EKS mit P6e-00 konfiguriert und verwendet wird. GB2 UltraServers Der p6e-gb200.36xlarge Instance-Typ mit 4 NVIDIA Blackwell GPUs ist nur als P6e-00 verfügbar. GB2 UltraServers Es gibt zwei Typen von P6e- 00. GB2 UltraServers Der u-p6e-gb200x36 UltraServer hat 9 p6e-gb200.36xlarge Instanzen und der u-p6e-gb200x72 UltraServer hat 18 p6e-gb200.36xlarge Instanzen.

Weitere Informationen finden Sie auf der Amazon EC2 GB2 UltraServers P6e-00-Webseite.

Überlegungen

  • Amazon EKS unterstützt GB2 P6e-00 UltraServers für Kubernetes-Versionen 1.33 und höher. Diese Version von Kubernetes bietet Unterstützung für Dynamic Resource Allocation (DRA), die standardmäßig in EKS und in der Version 023 EKS-Optimized Accelerated aktiviert ist. AL2 AMIs DRA ist eine Voraussetzung für die Verwendung des P6e-00 mit EKS. GB2 UltraServers DRA wird im automatischen Modus von Karpenter oder EKS nicht unterstützt, und es wird empfohlen, selbstverwaltete EKS-Knotengruppen oder EKS-verwaltete Knotengruppen zu verwenden, wenn Sie den P6e-00 mit EKS verwenden. GB2 UltraServers

  • GB2P6e-00 UltraServers werden über Capacity Blocks for ML zur Verfügung gestellt. EC2 Informationen Rechenressourcen für AI/ML Workloads auf Amazon EKS verwalten zum Starten von EKS-Knoten mit Capacity-Blöcken finden Sie unter.

  • Wenn Sie von EKS verwaltete Knotengruppen mit Kapazitätsblöcken verwenden, müssen Sie benutzerdefinierte Startvorlagen verwenden. Wenn Sie von EKS verwaltete Knotengruppen mit GB2 P6e-00 aktualisieren UltraServers, müssen Sie 0 vor dem Upgrade die gewünschte Größe der Knotengruppe auf einstellen.

  • Es wird empfohlen, die AL2 023 ARM NVIDIA-Variante des EKS-optimierten Beschleunigers zu verwenden. AMIs Dieses AMI umfasst die erforderlichen Knotenkomponenten und die Konfiguration für die Verwendung mit P6e-00. GB2 UltraServers Wenn Sie sich entscheiden, Ihr eigenes AMI zu erstellen, sind Sie für die Installation und Überprüfung der Kompatibilität der Knoten- und Systemsoftware, einschließlich der Treiber, verantwortlich. Weitere Informationen finden Sie unter Verwenden Sie EKS-optimierte beschleunigte AMIs GPU-Instanzen.

  • Es wird empfohlen, die EKS-optimierte AMI-Version v20251103 oder höher zu verwenden, die die NVIDIA-Treiberversion 580 enthält. Diese NVIDIA-Treiberversion ermöglicht Coherent Driver-Based Memory (CDMM), um potenziellen Speicherüberschüssen entgegenzuwirken. Wenn CDMM aktiviert ist, werden die folgenden Funktionen nicht unterstützt: NVIDIA Multi-Instance-GPU (MIG) und vGPU. Weitere Informationen zu CDMM finden Sie unter NVIDIA Coherent Driver-based Memory Management (CDMM).

  • Wenn Sie den NVIDIA-GPU-Operator mit dem EKS-optimierten AL2 023 NVIDIA AMI verwenden, müssen Sie die Operatorinstallation des Treibers und des Toolkits deaktivieren, da diese bereits im AMI enthalten sind. Die für EKS optimierten AL2 023 NVIDIA enthalten AMIs weder das NVIDIA Kubernetes-Geräte-Plugin noch den NVIDIA DRA-Treiber, und diese müssen separat installiert werden.

  • Jede p6e-gb200.36xlarge Instanz kann mit bis zu 17 Netzwerkkarten konfiguriert werden und EFA für die Kommunikation zwischen ihnen nutzen. UltraServers Der Netzwerkverkehr kann Workloads durchqueren UltraServers, aber für eine optimale Leistung wird empfohlen, Workloads nach demselben Schema zu planen und dabei IMEX für die GPU-interne Kommunikation zu UltraServer nutzen. UltraServer Weitere Informationen finden Sie unter EFA-Konfiguration für P6e-00-Instances. GB2

  • Jede p6e-gb200.36xlarge Instance verfügt über 3 x 7,5 TB Instance-Speicher. Standardmäßig formatiert und mountet das EKS-optimierte AMI die Instance-Speicher nicht. Der kurzlebige Speicher des Knotens kann von Pods gemeinsam genutzt werden, die kurzlebigen Speicher anfordern, und von Container-Images, die auf den Knoten heruntergeladen werden. Wenn Sie das AL2 023 EKS-optimierte AMI verwenden, kann dies als Teil des Knoten-Bootstraps in den Benutzerdaten konfiguriert werden, indem die lokale Speicherrichtlinie der Instanz auf RAID0 gesetzt wird. NodeConfig Bei Einstellung auf RAID0 speichert und konfiguriert die Instance die Container-Runtime und das Kubelet, um diesen kurzlebigen Speicher zu nutzen.

Komponenten

Die folgenden Komponenten werden für die Ausführung von Workloads auf EKS mit dem P6e-00 empfohlen. GB2 UltraServers Sie können optional den NVIDIA-GPU-Operator verwenden, um die NVIDIA-Knotenkomponenten zu installieren. Wenn Sie den NVIDIA-GPU-Operator mit dem EKS-optimierten AL2 023 NVIDIA AMI verwenden, müssen Sie die Operatorinstallation des Treibers und des Toolkits deaktivieren, da diese bereits im AMI enthalten sind.

Stack Komponente

EKS-optimiertes beschleunigtes AMI

Kernel 6.12

NVIDIA-GPU-Treiber

NVIDIA CUDA-Benutzermodus-Treiber

NVIDIA-Container-Toolkit

NVIDIA-Fabric-Manager

NVIDIA IMEX-Treiber

NVLink NVIDIA-Subnetzmanager

EFA-Treiber

Komponenten, die auf dem Knoten ausgeführt werden

VPC CNI

EFA-Geräte-Plugin

NVIDIA K8s-Geräte-Plugin

NVIDIA DRA-Treiber

Erkennung von NVIDIA-Knotenfunktionen (NFD)

Erkennung von NVIDIA-GPU-Features (GFD)

Die Knotenkomponenten in der obigen Tabelle erfüllen die folgenden Funktionen:

  • VPC CNI: Weist VPC IPs als primäre Netzwerkschnittstelle für Pods zu, die auf EKS ausgeführt werden

  • EFA-Geräte-Plugin: Weist EFA-Geräte als sekundäre Netzwerke für Pods zu, die auf EKS ausgeführt werden. Verantwortlich für den Netzwerkverkehr über P6e-00. GB2 UltraServers Für Workloads mit mehreren Knoten, d. h. GPU-to-GPU innerhalb eines UltraServer Kanals, der über mehrere Knoten fließt. NVLink

  • NVIDIA Kubernetes-Geräte-Plugin: Weist Pods, die auf EKS laufen, GPUs als Geräte zu. Es wird empfohlen, das NVIDIA Kubernetes-Geräte-Plugin zu verwenden, bis die GPU-Zuweisungsfunktion des NVIDIA DRA-Treibers den experimentellen Status erreicht hat. Aktuelle Informationen finden Sie in den NVIDIA-DRA-Treiberversionen.

  • NVIDIA DRA-Treiber: Ermöglicht ComputeDomain benutzerdefinierte Ressourcen, die die Erstellung von IMEX-Domänen erleichtern, die Workloads folgen, die auf P6e-00 ausgeführt werden. GB2 UltraServers

    • Die ComputeDomain Ressource beschreibt eine IMEX-Domäne (Internode Memory Exchange). Wenn Workloads mit einem ResourceClaim for a auf dem Cluster bereitgestellt ComputeDomain werden, erstellt der NVIDIA DRA-Treiber automatisch ein IMEX, DaemonSet das auf passenden Knoten ausgeführt wird, und richtet die IMEX-Kanäle zwischen den Knoten ein, bevor der Workload gestartet wird. Weitere Informationen zu IMEX finden Sie in der Übersicht über NVIDIA IMEX für Systeme mit mehreren Knoten. NVLink

    • Der NVIDIA-DRA-Treiber verwendet ein von NVIDIA GFD verwendetes Clique-ID-Label (nvidia.com/gpu.clique), das Informationen über die Netzwerktopologie und -domäne weitergibt. NVLink

    • Es hat sich bewährt, einen Job pro Workload zu erstellen ComputeDomain .

  • NVIDIA Node Feature Discovery (NFD): Erforderliche Abhängigkeit für GFD, um Knotenbezeichnungen auf der Grundlage der erkannten Attribute auf Knotenebene anzuwenden.

  • NVIDIA GPU Feature Discovery (GFD): Wendet ein NVIDIA-Standard-Topologie-Label an, das auf die Knoten aufgerufen wird. nvidia.com/gpu.clique Knoten innerhalb desselben Systems nvidia.com/gpu.clique sind über mehrere Knoten erreichbar NVLink, und Sie können Pod-Affinitäten in Ihrer Anwendung verwenden, um Pods für dieselbe Domain zu planen. NVlink

Verfahren

Im folgenden Abschnitt wird davon ausgegangen, dass Sie über einen EKS-Cluster verfügen, auf dem Kubernetes Version 1.33 oder höher ausgeführt wird, mit einer oder mehreren Knotengruppen mit GB2 P6e-00, auf dem das AL2 023 ARM NVIDIA EKS-optimierte beschleunigte AMI UltraServers ausgeführt wird. Die erforderlichen Schritte für selbstverwaltete EKS-Knoten und Rechenressourcen für AI/ML Workloads auf Amazon EKS verwalten verwaltete Knotengruppen finden Sie unter den Links unter.

Das folgende Verfahren verwendet die folgenden Komponenten.

Name Version Description

NVIDIA-GPU-Betreiber

25.3.4+

Für das Lebenszyklusmanagement erforderlicher Plug-ins wie NVIDIA Kubernetes Device Plugin und NFD/GFD.

NVIDIA DRA-Treiber

25.8.0 oder höher

Für ComputeDomain CRDs und IMEX-Domainverwaltung.

EFA-Geräte-Plugin

0.5.14+

Für die übergreifende Kommunikation. UltraServer

Installieren Sie den NVIDIA GPU-Operator

Der NVIDIA-GPU-Operator vereinfacht die Verwaltung der Komponenten, die für die Verwendung GPUs in Kubernetes-Clustern erforderlich sind. Da der NVIDIA-GPU-Treiber und das Container-Toolkit als Teil des EKS-optimierten beschleunigten AMI installiert werden, müssen diese false in der Konfiguration der Helm-Werte auf eingestellt werden.

  1. Erstellen Sie eine Helm-Wertedatei gpu-operator-values.yaml mit dem Namen der folgenden Konfiguration.

    devicePlugin: enabled: true nfd: enabled: true gfd: enabled: true driver: enabled: false toolkit: enabled: false migManager: enabled: false
  2. Installieren Sie den NVIDIA-GPU-Operator für Ihren Cluster mithilfe der gpu-operator-values.yaml Datei, die Sie im vorherigen Schritt erstellt haben.

    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

Installieren Sie den NVIDIA DRA-Treiber

Ab der NVIDIA-GPU-Operatorversion v25.3.4 muss der NVIDIA-DRA-Treiber separat installiert werden. Es wird empfohlen, die Versionshinweise zum NVIDIA-GPU-Operator zu lesen, da sich dies in einer future Version ändern kann.

  1. Erstellen Sie eine Helm-Wertedatei dra-values.yaml mit dem Namen der folgenden Konfiguration. Beachten Sie das nodeAffinity und tolerations das konfiguriert den DRA-Treiber so, dass er nur auf Knoten mit einer NVIDIA-GPU bereitgestellt wird.

    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. Installieren Sie den NVIDIA-DRA-Treiber für Ihren Cluster mithilfe der dra-values.yaml Datei, die Sie im vorherigen Schritt erstellt haben.

    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. Nach der Installation erstellt der DRA-Treiber DeviceClass Ressourcen, die es Kubernetes ermöglichen, Ressourcen zu verstehen und zuzuweisenComputeDomain, sodass das IMEX-Management für verteilte GPU-Workloads auf P6e-00 möglich ist. GB2 UltraServers

    Stellen Sie mit den folgenden Befehlen sicher, dass die DRA-Ressourcen verfügbar sind.

    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

Installieren Sie das EFA-Geräte-Plugin

Um die EFA-Kommunikation zwischen nutzen zu können UltraServers, müssen Sie das Kubernetes-Geräte-Plugin für EFA installieren. GB2P6e-00-Instances können mit bis zu 17 Netzwerkkarten konfiguriert werden, und das primäre NCI (Index 0) muss vom Typ sein und bis zu 100 Gbit/s interface ENA-Bandbreite unterstützen. Konfigurieren Sie Ihre EFA- und ENA-Schnittstellen bei der Knotenbereitstellung gemäß Ihren Anforderungen. Weitere Informationen zur EFA-Konfiguration finden Sie in der AWS Dokumentation zur EFA-Konfiguration für GB2 P6e-00-Instanzen.

  1. Erstellen Sie eine Helm-Wertedatei efa-values.yaml mit dem Namen der folgenden Konfiguration.

    tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule
  2. Installieren Sie den NVIDIA DRA-Operator für Ihren Cluster mithilfe der dra-values.yaml Datei, die Sie im vorherigen Schritt erstellt haben.

    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

    Wenn Sie Ihre Instances beispielsweise mit einer reinen EFA-Schnittstelle in jeder NCI-Gruppe konfiguriert haben, wird bei der Beschreibung eines Knotens davon ausgegangen, dass pro Knoten 4 zuweisbare EFA-Geräte vorhanden sind.

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

Einen NVLINK-NCCL-Test mit mehreren Knoten und andere Mikro-Benchmarks finden Sie im Repository. awesome-distributed-training GitHub Die folgenden Schritte zeigen, wie Sie einen Test mit mehreren Knoten mit nvbandwidth durchführen. NVLink

  1. Um einen Bandbreitentest mit mehreren Knoten auf zwei Knoten in der NVL72 Domäne durchzuführen, installieren Sie zunächst den MPI-Operator:

    kubectl create -f https://github.com/kubeflow/mpi-operator/releases/download/v0.7.0/mpi-operator.yaml
  2. Erstellen Sie eine Helm-Wertedatei mit dem Namennvbandwidth-test-job.yaml, die das Testmanifest definiert. Beachten Sie die nvidia.com/gpu.clique Pod-Affinität, die Worker in derselben NVLink Domäne einzuplanen, die über mehrere Knoten erreichbar NVLink ist.

    Ab der NVIDIA DRA-Treiberversion v25.8.0 ComputeDomains sind sie elastisch und .spec.numNodes können in der Definition auf 0 eingestellt werden. ComputeDomain Informationen zu Updates finden Sie in den neuesten Versionshinweisen zum NVIDIA DRA-Treiber.

    --- 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. Erstellen Sie den Job ComputeDomain und starten Sie ihn mit dem folgenden Befehl.

    kubectl apply -f nvbandwidth-test-job.yaml
  4. ComputeDomain Bei der Erstellung können Sie sehen, dass der ComputeDomain Workload aus zwei Knoten besteht:

    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. Überprüfen Sie die Ergebnisse des Jobs mit dem folgenden Befehl.

    kubectl logs --tail=-1 -l job-name=nvbandwidth-test-launcher
  6. Wenn der Test abgeschlossen ist, löschen Sie ihn mit dem folgenden Befehl.

    kubectl delete -f nvbandwidth-test-job.yaml