Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso UltraServers en Amazon SageMaker HyperPod
SageMaker HyperPod La compatibilidad con Ultraservers proporciona capacidades de computación en GPU de alto rendimiento para cargas de trabajo de inteligencia artificial y aprendizaje automático. Basados en la NVL72 arquitectura NVIDIA GB2 00, estos Ultraservers ofrecen NVLink conectividad entre 18 GB2 00 instancias en una configuración de doble rack, lo que suma un total de 72 B200. GPUs Esta NVLink estructura permite que las cargas de trabajo utilicen las comunicaciones de la GPU, lo que aumenta la capacidad utilizable de la GPU y la memoria direccionable más allá de lo que es posible con las instancias discretas, y es compatible con modelos de IA más complejos y que consumen muchos recursos. La NVLink conectividad es posible gracias a la tecnología NVIDIA IMEX, que gestiona la configuración de bajo nivel para garantizar la seguridad de las conexiones mediante una estructura de GPU entre instancias del mismo rack.
HyperPod simplifica la implementación y la administración de estos clústeres de GPU mediante el reconocimiento inteligente de la topología y la configuración automatizada. La plataforma detecta y etiqueta automáticamente los nodos con su ubicación física y la información del bloque de capacidad, lo que permite programar cargas de trabajo distribuidas teniendo en cuenta la topología. HyperPod resume los complejos requisitos de configuración de IMEX, lo que le permite centrarse en el despliegue de la carga de trabajo en lugar de en la configuración de la estructura de GPU de bajo nivel. Puede elegir opciones de despliegue flexibles, que incluyen nodos autogestionados y grupos de nodos gestionados por EKS. Amazon EKS ofrece controladores NVIDIA optimizados AMIs que incluyen controladores NVIDIA preconfigurados, Fabric Manager, controladores IMEX y todo el software de sistema necesario para un funcionamiento sin problemas.
La integración incluye capacidades de colocación de módulos que garantizan que las cargas de trabajo distribuidas se programen de manera óptima entre los NVL72 dominios mediante etiquetas topológicas estándar de Kubernetes. Las funciones integradas de supervisión y recuperación automatizada proporcionan soporte operativo, ya que el agente de mantenimiento de la AMI detecta los errores de la GPU en los registros del núcleo y puede corregir automáticamente los problemas o reemplazar los nodos defectuosos en los grupos de nodos gestionados. Esta combinación de escalabilidad de GPU, ubicación inteligente de las cargas de trabajo y operaciones automatizadas le permite centrarse en las AI/ML innovaciones y no en la complejidad de la infraestructura, a la vez que consigue el máximo rendimiento de sus inversiones en GPU.
Para configurar el uso UltraServers con tu HyperPod clúster, sigue estos pasos:
-
Crea un HyperPod clúster basado en EKS. Cuando elijas un grupo de instancias, asegúrate de elegir un UltraServer.
-
Una vez creado el clúster, usa los siguientes comandos para instalar los complementos operativos:
Complemento para dispositivos NVIDIA 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"
Descubrimiento de funciones de GPU
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml
Ahora puede ejecutar trabajos. El siguiente ejemplo muestra cómo crear un dominio, configurar un dominio IMEX y habilitar la asignación de canales. Estos pasos también le permiten crear un pod para aprovisionar un canal para la comunicación NCCL.
-
Crea un archivo de especificaciones de recursos para usarlo 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 -
Aplica la configuración que creaste.
kubectl apply -f imex-channel-injection.yaml
-
Para comprobar que se ha creado el pod, ejecute los
get pods
comandos.kubectl get pods kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain
-
También puedes comprobar los registros del pod para ver si ha asignado un canal de comunicación.
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
-
También puede comprobar los registros para comprobar que la configuración automática de IMEX se esté ejecutando con un canal asignado.
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
-
Una vez que haya verificado todo, elimine la carga de trabajo y elimine la configuración.
kubectl delete -f imex-channel-injection.yaml