UltraServers In Amazon verwenden SageMaker HyperPod - Amazon SageMaker KI

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.

UltraServers In Amazon verwenden SageMaker HyperPod

SageMaker HyperPod Die Unterstützung für Ultraserver bietet leistungsstarke GPU-Rechenfunktionen für KI- und Machine-Learning-Workloads. Diese Ultraserver basieren auf NVIDIA GB2 00 und der NVL72 Architektur und bieten NVLink Konnektivität für 18 GB2 00 Instanzen in einer Dual-Rack-Konfiguration, was insgesamt 72 B200 entspricht. GPUs Diese NVLink Struktur ermöglicht es Workloads, GPU-Kommunikation zu nutzen, die die nutzbare GPU-Kapazität und den adressierbaren Speicher über das hinaus erhöht, was mit diskreten Instances möglich ist, und unterstützt komplexere und ressourcenintensivere KI-Modelle. Die NVLink Konnektivität wird durch die NVIDIA IMEX-Technologie ermöglicht, die die Low-Level-Konfiguration für sichere GPU-Fabric-Verbindungen zwischen Instanzen innerhalb desselben Racks übernimmt.

HyperPod vereinfacht die Bereitstellung und Verwaltung dieser GPU-Cluster durch intelligente Topologieerkennung und automatisierte Konfiguration. Die Plattform erkennt Knoten automatisch und kennzeichnet sie mit ihrem physischen Standort und ihren Kapazitätsblockinformationen, was eine topologieorientierte Planung für verteilte Workloads unterstützt. HyperPod abstrakt die komplexen IMEX-Konfigurationsanforderungen, sodass Sie sich auf die Bereitstellung von Workloads konzentrieren können, anstatt sich auf die GPU-Fabric-Konfiguration auf niedriger Ebene zu konzentrieren. Sie können flexible Bereitstellungsoptionen wählen, darunter sowohl selbstverwaltete Knoten als auch EKS-verwaltete Knotengruppen. Amazon EKS bietet optimierte AMIs , darunter vorkonfigurierte NVIDIA-Treiber, Fabric Manager, IMEX-Treiber und die gesamte erforderliche Systemsoftware für einen reibungslosen Betrieb.

Die Integration umfasst Funktionen zur Pod-Platzierung, die sicherstellen, dass verteilte Workloads mithilfe von standardmäßigen Kubernetes-Topologie-Labels optimal auf mehrere NVL72 Domains verteilt werden. Integrierte Überwachungs- und automatische Wiederherstellungsfunktionen bieten Betriebsunterstützung, wobei der AMI-Integritätsagent GPU-Fehler anhand von Kernelprotokollen erkennt und Probleme automatisch beheben oder fehlerhafte Knoten in verwalteten Knotengruppen ersetzen kann. Diese Kombination aus GPU-Skalierung, intelligenter Workload-Platzierung und automatisierten Abläufen hilft Ihnen, sich auf Ihre AI/ML Innovationen statt auf die Komplexität der Infrastruktur zu konzentrieren und gleichzeitig die maximale Leistung aus Ihren GPU-Investitionen herauszuholen.

Gehen Sie wie folgt vor, um die Verwendung UltraServers mit Ihrem HyperPod Cluster einzurichten:

  1. Erstellen Sie einen EKS-basierten Cluster HyperPod . Wenn Sie eine Instanzgruppe auswählen, stellen Sie sicher, dass Sie eine auswählen. UltraServer

  2. Nachdem Ihr Cluster erstellt wurde, verwenden Sie die folgenden Befehle, um betriebsbereite Plugins zu installieren:

    NVIDIA-Geräte-Plugin v0.17.2

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/nvidia-device-plugin.yml

    DaemonSet FD v0.17.3

    kubectl apply -k "https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.17.3"

    Entdeckung von GPU-Features

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml

Sie können jetzt Jobs ausführen. Das folgende Beispiel zeigt, wie Sie eine Domäne erstellen, eine IMEX-Domäne konfigurieren und die Kanalzuweisung aktivieren. Mit diesen Schritten können Sie auch einen Pod erstellen, um einen Kanal für die NCCL-Kommunikation bereitzustellen.

  1. Erstellen Sie eine Ressourcenspezifikationsdatei zur Verwendung mit Kubectl.

    cat <<EOF > imex-channel-injection.yaml --- apiVersion: resource.nvidia.com/v1beta1 kind: ComputeDomain metadata: name: imex-channel-injection spec: numNodes: 1 channel: resourceClaimTemplate: name: imex-channel-0 --- apiVersion: v1 kind: Pod metadata: name: imex-channel-injection spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: nvidia.com/gpu.clique operator: Exists - key: topology.k8s.aws/ultraserver-id operator: In values: - <UltraServer-ID> containers: - name: ctr image: ubuntu:22.04 command: ["bash", "-c"] args: ["ls -la /dev/nvidia-caps-imex-channels; trap 'exit 0' TERM; sleep 9999 & wait"] resources: claims: - name: imex-channel-0 resourceClaims: - name: imex-channel-0 resourceClaimTemplateName: imex-channel-0 EOF
  2. Wenden Sie die Konfiguration an, die Sie erstellt haben.

    kubectl apply -f imex-channel-injection.yaml
  3. Führen Sie die get pods Befehle aus, um zu überprüfen, ob Ihr Pod erstellt wurde.

    kubectl get pods kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain
  4. Sie können auch in den Protokollen des Pods nachsehen, ob er einen Kommunikationskanal zugewiesen hat.

    kubectl logs imex-channel-injection
    total 0 drwxr-xr-x 2 root root 60 Feb 19 10:43 . drwxr-xr-x 6 root root 380 Feb 19 10:43 .. crw-rw-rw- 1 root root 507, 0 Feb 19 10:43 channel0
  5. Sie können auch anhand der Protokolle überprüfen, ob die automatisierte IMEX-Konfiguration mit einem zugewiesenen Kanal ausgeführt wird.

    kubectl logs -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain --tail=-1 /etc/nvidia-imex/nodes_config.cfg:
    IMEX Log initializing at: 8/8/2025 14:23:12.081 [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX version 570.124.06 is running with the following configuration options [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging level = 4 [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging file name/path = /var/log/nvidia-imex.log [Aug 8 2025 14:23:12] [INFO] [tid 39] Append to log file = 0 [Aug 8 2025 14:23:12] [INFO] [tid 39] Max Log file size = 1024 (MBs) [Aug 8 2025 14:23:12] [INFO] [tid 39] Use Syslog file = 0 [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX Library communication bind interface = [JAug 8 2025 14:23:12] [INFO] [tid 39] IMEX library communication bind port = 50000 [Aug 8 2025 14:23:12] [INFO] [tid 39] Identified this node as ID 0, using bind IP of '10.115.131.8', and network interface of enP5p9s0 [Aug 8 2025 14:23:120] [INFO] [tid 39] nvidia-imex persistence file /var/run/nvidia-imex/persist.dat does not exist. Assuming no previous importers. [Aug 8 2025 14:23:12] [INFO] [tid 39] NvGpu Library version matched with GPU Driver version [Aug 8 2025 14:23:12] [INFO] [tid 63] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 64] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 65] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 39] Creating gRPC channels to all peers (nPeers = 1). [Aug 8 2025 14:23:12] [INFO] [tid 66] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX_WAIT_FOR_QUORUM != FULL, continuing initialization without waiting for connections to all nodes. [Aug 8 2025 14:23:12] [INFO] [tid 67] Connection established to node 0 with ip address 10.115.131.8. Number of times connected: 1 [Aug 8 2025 14:23:12] [INFO] [tid 39] GPU event successfully subscribed
  6. Nachdem Sie alles überprüft haben, löschen Sie den Workload und entfernen Sie die Konfiguration.

    kubectl delete -f imex-channel-injection.yaml