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
0vor 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
v20251103oder 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 MemoryManagement (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.36xlargeInstanz 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.36xlargeInstance 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
| 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.cliqueKnoten innerhalb desselben Systemsnvidia.com/gpu.cliquesind ü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.
-
Erstellen Sie eine Helm-Wertedatei
gpu-operator-values.yamlmit dem Namen der folgenden Konfiguration.devicePlugin: enabled: true nfd: enabled: true gfd: enabled: true driver: enabled: false toolkit: enabled: false migManager: enabled: false -
Installieren Sie den NVIDIA-GPU-Operator für Ihren Cluster mithilfe der
gpu-operator-values.yamlDatei, die Sie im vorherigen Schritt erstellt haben.helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo updatehelm 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
-
Erstellen Sie eine Helm-Wertedatei
dra-values.yamlmit dem Namen der folgenden Konfiguration. Beachten Sie dasnodeAffinityundtolerationsdas 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 -
Installieren Sie den NVIDIA-DRA-Treiber für Ihren Cluster mithilfe der
dra-values.yamlDatei, die Sie im vorherigen Schritt erstellt haben.helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo updatehelm 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 -
Nach der Installation erstellt der DRA-Treiber
DeviceClassRessourcen, 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 UltraServersStellen Sie mit den folgenden Befehlen sicher, dass die DRA-Ressourcen verfügbar sind.
kubectl api-resources | grep resource.k8s.iodeviceclasses 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 ResourceSlicekubectl get deviceclassesNAME 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.
-
Erstellen Sie eine Helm-Wertedatei
efa-values.yamlmit dem Namen der folgenden Konfiguration.tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule -
Installieren Sie den NVIDIA DRA-Operator für Ihren Cluster mithilfe der
dra-values.yamlDatei, die Sie im vorherigen Schritt erstellt haben.helm repo add eks https://aws.github.io/eks-charts helm repo updatehelm install efa eks/aws-efa-k8s-device-plugin -n kube-system \ --version="0.5.14" \ -f efa-values.yamlWenn 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
Validieren Sie IMEX über Multi-Node NVLink
Einen NVLINK-NCCL-Test mit mehreren Knoten und andere Mikro-Benchmarks finden Sie im Repository. awesome-distributed-training
-
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 -
Erstellen Sie eine Helm-Wertedatei mit dem Namen
nvbandwidth-test-job.yaml, die das Testmanifest definiert. Beachten Sie dienvidia.com/gpu.cliquePod-Affinität, die Worker in derselben NVLink Domäne einzuplanen, die über mehrere Knoten erreichbar NVLink ist.Ab der NVIDIA DRA-Treiberversion
v25.8.0ComputeDomains sind sie elastisch und.spec.numNodeskönnen in der Definition auf0eingestellt 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 -
Erstellen Sie den Job ComputeDomain und starten Sie ihn mit dem folgenden Befehl.
kubectl apply -f nvbandwidth-test-job.yaml -
ComputeDomain Bei der Erstellung können Sie sehen, dass der ComputeDomain Workload aus zwei Knoten besteht:
kubectl get computedomains.resource.nvidia.com -o yamlstatus: nodes: - cliqueID: <ClusterUUID>.<Clique ID> ipAddress: <node-ip> name: <node-hostname> - cliqueID: <ClusterUUID>.<Clique ID> ipAddress: <node-ip> name: <node-hostname> status: Ready -
Überprüfen Sie die Ergebnisse des Jobs mit dem folgenden Befehl.
kubectl logs --tail=-1 -l job-name=nvbandwidth-test-launcher -
Wenn der Test abgeschlossen ist, löschen Sie ihn mit dem folgenden Befehl.
kubectl delete -f nvbandwidth-test-job.yaml