Tous les produits
Search
Centre de documentation

Container Compute Service:Exécuter des applications sur des réseaux RDMA haute performance

Dernière mise à jour :Aug 12, 2026

Les charges de travail GPU multi-nœuds exigent un débit et une latence que TCP/IP ne peut garantir de manière fiable à grande échelle. ACS (Alibaba Cloud Container Compute Service) fournit un réseau haute performance compatible RDMA qui réduit la surcharge de communication pour l'entraînement distribué et l'inférence. Ajoutez un libellé au pod pour activer le RDMA, configurez les variables d'environnement NCCL correspondant à votre modèle de GPU, et le pod est opérationnel.

Fonctionnement

TCP/IP introduit une surcharge qui s'accentue avec l'augmentation du nombre de GPU : copie des données entre l'espace noyau et l'espace utilisateur, traitement complexe de la pile protocolaire, algorithmes de contrôle de flux et changements de contexte fréquents.

Le RDMA (Remote Direct Memory Access) contourne ces coûts grâce aux transferts sans copie et au contournement du noyau. Il en résulte une latence réduite, un débit accru et une consommation CPU moindre, des avantages particulièrement marqués lors des opérations collectives GPU multi-nœuds.

Pour activer le RDMA sur un pod dans ACS, ajoutez le libellé alibabacloud.com/hpn-type: "rdma" à la spécification du pod. ACS attache automatiquement une carte d'interface réseau (NIC) RDMA au conteneur. Configurez ensuite les variables d'environnement NCCL adaptées à votre modèle de GPU pour préparer le pod à l'entraînement distribué ou à l'inférence.

Modèles de GPU compatibles RDMA

ACS prend en charge plusieurs modèles de GPU. Le tableau suivant répertorie les modèles compatibles RDMA ainsi que leurs contraintes.

Modèle de GPU compute-class Contrainte RDMA Type de NIC RDMA
GU8TF gpu Pods à 8 cartes uniquement Type 1
GU8TEF gpu Pods à 8 cartes uniquement Type 1
GX8SF gpu Pods à 8 cartes uniquement Type 1
P16EN gpu Pods à 16 cartes uniquement Type 2
gpu-hpn Pods à 1, 2, 4, 8 et 16 cartes

Le type de NIC RDMA détermine les variables d'environnement NCCL à configurer.

Configuration NCCL

Les GPU ACS utilisent deux types de NIC RDMA, nécessitant chacun des paramètres NCCL spécifiques.

NIC de type 1 (GU8TF, GU8TEF, GX8SF)

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

NIC de type 2 (P16EN)

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

Variables d'environnement

Variable Description
NCCL_SOCKET_IFNAME Port utilisé par NCCL pour établir les connexions. Utilisez eth0 dans ACS.
NCCL_IB_HCA Définit les interfaces Host Channel Adapter (HCA) à utiliser pour la communication RDMA. Définissez cette valeur sur mlx5 pour les NIC de type 1. Laissez ce champ vide pour le P16EN (type 2).
NCCL_IB_DISABLE Indique s'il faut désactiver les réseaux IB/RoCE au profit des sockets IP. La valeur 1 désactive IB/RoCE. Définissez-la sur 1 pour le P16EN.
NCCL_DEBUG Contrôle le niveau de détail des journaux de débogage NCCL.

Pour les autres variables d'environnement NCCL, consultez la documentation NCCL.

Déployer un pod GPU avec RDMA

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Déploiement du pod

  1. Créez un fichier nommé dep-demo-hpn-gpu.yaml avec le contenu suivant. Cet exemple utilise un GPU GU8TF (NIC de type 1). Ajustez alibabacloud.com/gpu-model-series et les variables NCCL selon votre modèle 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. Appliquez le manifeste.

    kubectl apply -f dep-demo-hpn-gpu.yaml
  3. Patientez jusqu'à ce que le pod atteigne l'état Running.

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

    Le pod est prêt lorsque la sortie affiche 1/1 Running :

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

Vérifier l'activation du RDMA

Vérifiez que la NIC RDMA a bien été attachée au conteneur :

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

La sortie affiche l'interface hpn0 avec le statut UP BROADCAST RUNNING MULTICAST, confirmant ainsi l'activation de la NIC RDMA :

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 n'apparaît pas, vérifiez que le libellé alibabacloud.com/hpn-type: "rdma" figure bien dans les libellés du pod et que le modèle de GPU prend en charge le RDMA avec le nombre de cartes demandé.