Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo UltraServers in Amazon SageMaker HyperPod
SageMaker HyperPod il supporto per Ultraservers offre funzionalità di elaborazione GPU ad alte prestazioni per carichi di lavoro di intelligenza artificiale e apprendimento automatico. Basati sull’architettura NVIDIA GB200 e NVL72, questi UltraServer forniscono connettività NVLink in 18 istanze GB200 in una configurazione dual-rack, per un totale di 72 GPU B200. Questo fabric NVLink consente ai carichi di lavoro di utilizzare comunicazioni GPU che aumentano significativamente la capacità utilizzabile della GPU e della memoria rispetto alle istanze discrete, supportando così modelli di IA più complessi e che richiedono molte risorse. La connettività NVLink è abilitata dalla tecnologia NVIDIA IMEX, che gestisce la configurazione di basso livello per connessioni sicure al fabric GPU tra istanze all’interno dello stesso rack.
HyperPod semplifica l'implementazione e la gestione di questi cluster di GPU attraverso il riconoscimento intelligente della topologia e la configurazione automatizzata. La piattaforma rileva ed etichetta automaticamente i nodi con la loro posizione fisica e le informazioni sui blocchi di capacità, il che supporta la pianificazione basata sulla topologia per i carichi di lavoro distribuiti. HyperPod astrae i complessi requisiti di configurazione IMEX, consentendoti di concentrarti sull'implementazione dei carichi di lavoro piuttosto che sulla configurazione dell'infrastruttura GPU di basso livello. Puoi scegliere opzioni di implementazione flessibili, inclusi nodi autogestiti e gruppi di nodi gestiti da EKS. Amazon EKS fornisce AMI ottimizzate che includono driver NVIDIA preconfigurati, Fabric Manager, driver IMEX e tutto il software di sistema necessario per un funzionamento ottimale.
L'integrazione include funzionalità di posizionamento dei pod che garantiscono che i carichi di lavoro distribuiti siano pianificati in modo ottimale tra i domini NVL72 utilizzando etichette topologiche Kubernetes standard. Built-in le funzionalità di monitoraggio e ripristino automatizzato forniscono supporto operativo, in cui l'AMI Health Agent rileva gli errori della GPU dai log del kernel e può correggere automaticamente i problemi o sostituire i nodi difettosi nei gruppi di nodi gestiti. Questa combinazione di scalabilità della GPU, posizionamento intelligente dei carichi di lavoro e operazioni automatizzate consente di concentrarsi sulle AI/ML innovazioni anziché sulla complessità dell'infrastruttura, ottenendo al contempo le massime prestazioni dagli investimenti in GPU.
Per iniziare la configurazione UltraServers con il HyperPod cluster, segui i seguenti passaggi:
-
Crea un EKS-based HyperPod cluster. Quando scegli un gruppo di istanze, assicurati di scegliere un UltraServer.
-
Dopo aver creato il cluster, utilizza i comandi seguenti per installare i plugin operativi:
Plugin per dispositivi NVIDIA v0.17.2
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/nvidia-device-plugin.ymlFD DaemonSet v0.17.3
kubectl apply -k "https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.17.3"Rilevamento delle funzionalità della GPU
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml
Ora puoi eseguire processi. Nell’esempio seguente viene illustrato come creare un dominio, configurare un dominio IMEX e abilitare l’allocazione dei canali. Queste fasi consentono inoltre di creare un pod per allocare un canale per la comunicazione NCCL.
-
Crea un file con le specifiche delle risorse da utilizzare con 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 -
Applica la configurazione che hai creato.
kubectl apply -f imex-channel-injection.yaml -
Esegui i comandi
get podsper verificare che il pod sia stato creato.kubectl get pods kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain -
Puoi anche controllare i log del pod per vedere se ha allocato un canale di comunicazione.
kubectl logs imex-channel-injectiontotal 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 -
Puoi anche controllare i log per verificare che la configurazione IMEX automatizzata sia in esecuzione con un canale allocato.
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 -
Dopo aver verificato tutto, elimina il carico di lavoro e rimuovi la configurazione.
kubectl delete -f imex-channel-injection.yaml