Todos los productos
Search
Centro de documentos

Container Compute Service:Ejecutar aplicaciones con redes RDMA de alto rendimiento

Última actualización: Sep 06, 2026

Las cargas de trabajo de GPU en varios nodos exigen un throughput y una latencia de red que TCP/IP no proporciona de forma confiable a gran escala. ACS (Alibaba Cloud Container Compute Service) ofrece una red de alto rendimiento compatible con RDMA que reduce la sobrecarga de comunicación en el entrenamiento distribuido y la inference. Agregue una sola etiqueta al pod para habilitar RDMA, configure las variables de entorno de NCCL según su modelo de GPU y el pod quedará listo.

Cómo funciona

TCP/IP introduce una sobrecarga que aumenta conforme crece la cantidad de GPU: copia de datos entre el espacio del kernel y el espacio de usuario, procesamiento complejo de la pila de protocolos, algoritmos de control de flujo y cambios frecuentes de contexto.

RDMA (Remote Direct Memory Access) evita estos costos mediante transferencias sin copia (zero-copy) y omisión del kernel. Como resultado, se obtiene menor latencia, mayor throughput y menor uso de CPU. Estos beneficios son más notables en las operaciones colectivas de GPU en varios nodos.

Para habilitar RDMA en un pod de ACS, agregue la etiqueta alibabacloud.com/hpn-type: "rdma" a la especificación del pod. ACS asocia automáticamente una tarjeta de interfaz de red (NIC) RDMA al contenedor. Configure las variables de entorno de NCCL según su modelo de GPU y el pod quedará listo para el entrenamiento distribuido o la inference.

Modelos de GPU que admiten RDMA

ACS admite varios GPU models. A continuación se muestran los modelos compatibles con RDMA y sus restricciones.

Modelo de GPU

compute-class

Restricción de RDMA

Tipo de NIC RDMA

GU8TF

gpu

Solo pods de 8 tarjetas

Tipo 1

GU8TEF

gpu

Solo pods de 8 tarjetas

Tipo 1

GX8SF

gpu

Solo pods de 8 tarjetas

Tipo 1

P16EN

gpu

Solo pods de 16 tarjetas

Tipo 2

gpu-hpn

—

Pods de 1, 2, 4, 8 y 16 tarjetas

—

El tipo de NIC RDMA determina qué variables de entorno de NCCL debe configurar.

Configuración de NCCL

Las GPU de ACS usan dos tipos de NIC RDMA, cada uno con ajustes distintos de NCCL.

NIC tipo 1 (GU8TF, GU8TEF, GX8SF)

export NCCL_SOCKET_IFNAME=eth0
export NCCL_IB_HCA=mlx5
export NCCL_DEBUG=INFO

NIC tipo 2 (P16EN)

export NCCL_IB_DISABLE=1
export NCCL_SOCKET_IFNAME=eth0
export NCCL_IB_HCA=
export NCCL_DEBUG=INFO

Variables de entorno

Variable

Descripción

NCCL_SOCKET_IFNAME

Puerto que usa NCCL para establecer conexiones. En ACS, use eth0.

NCCL_IB_HCA

Indica qué interfaces de Host Channel Adapter (HCA) se utilizan para la comunicación RDMA. Establezca mlx5 para las NIC tipo 1. Para P16EN (tipo 2), deje este valor vacío.

NCCL_IB_DISABLE

Define si se deshabilitan las redes IB/RoCE para usar sockets IP en su lugar. El valor 1 deshabilita IB/RoCE. Establezca 1 para P16EN.

NCCL_DEBUG

Controla el nivel de salida de los registros de depuración de NCCL.

Para conocer otras variables de entorno de NCCL, consulte la documentación de NCCL.

Despliegue de un pod de GPU con RDMA

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Despliegue del pod

  1. Cree un archivo llamado dep-demo-hpn-gpu.yaml con el siguiente contenido. Este ejemplo utiliza GU8TF (NIC tipo 1). Ajuste alibabacloud.com/gpu-model-series y las variables de NCCL según su modelo de GPU.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dep-demo-hpn-gpu
      labels:
        app: demo-hpn-gpu
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: demo-hpn-gpu
      template:
        metadata:
          labels:
            app: demo-hpn-gpu
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            # Specify the GPU model. Change this value as needed.
            alibabacloud.com/gpu-model-series: "GU8TF"
            alibabacloud.com/hpn-type: "rdma"
        spec:
          containers:
          - name: demo
            image: registry-cn-wulanchabu.ack.aliyuncs.com/acs/stress:v1.0.4
            command:
            - "sleep"
            - "1000h"
            env:
            - name: NCCL_SOCKET_IFNAME
              value: "eth0"
            - name: NCCL_IB_HCA
              value: "mlx5"
            - name: NCCL_DEBUG
              value: "INFO"
            resources:
              requests:
                cpu: 128
                memory: 512Gi
                nvidia.com/gpu: 8
              limits:
                cpu: 128
                memory: 512Gi
                nvidia.com/gpu: 8
  2. Aplique el manifiesto.

    kubectl apply -f dep-demo-hpn-gpu.yaml
  3. Espere a que el pod alcance el estado Running.

    kubectl get pod | grep dep-demo-hpn-gpu

    El pod está listo cuando la salida muestra 1/1 Running:

    dep-demo-hpn-gpu-5d9xxxxxb6-xxxxx   1/1     Running   0          25m16s

Comprobar que RDMA está activo

Compruebe que la NIC RDMA se haya asociado al contenedor:

kubectl exec -it deploy/dep-demo-hpn-gpu -- ifconfig | grep hpn -A 8

La salida muestra la interfaz hpn0 con UP BROADCAST RUNNING MULTICAST, lo cual confirma que la NIC RDMA está activa:

hpn0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: xxxx::x:xxxx:xxxx:xxx/xx Scope:Link
          inet6 addr: xxxx:xxx:xxx:x:x:xxxx:x:xxx/xxx Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:xxxx  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:xx errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:x (892.0 B)

Si hpn0 no aparece, compruebe que alibabacloud.com/hpn-type: "rdma" esté presente en las etiquetas del pod. Compruebe también que el modelo de GPU admita RDMA con la cantidad de tarjetas solicitada.