すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:パフォーマンス専有型 RDMA ネットワークを使用したアプリケーションの実行

最終更新日:Dec 27, 2025

大規模な AI アプリケーションでは、タスク間の効率的な通信が GPU パフォーマンスを最大化するための鍵となります。Alibaba Cloud Container Compute Service (ACS) は、低レイテンシー、高スループット、高弾力性を備えたパフォーマンス専有型の Remote Direct Memory Access (RDMA) ネットワークサービスを提供します。このトピックでは、パフォーマンス専有型 RDMA ネットワークでアプリケーションを実行する方法について説明します。

機能概要

TCP/IP プロトコルはネットワーク通信の標準であり、多くのアプリケーションがそれに基づいて構築されています。しかし、AI サービスの成長に伴い、アプリケーションにはより優れたネットワークパフォーマンスが求められるようになりました。TCP/IP プロトコルには、高いコピーオーバーヘッド、複雑なプロトコルスタック処理、複雑なフロー制御アルゴリズム、頻繁なコンテキストスイッチなどの制限があります。これらの問題により、TCP/IP ネットワークのパフォーマンスがアプリケーションのボトルネックになります。

RDMA はこれらの問題に対処します。ゼロコピーやカーネルバイパスなどの機能を使用して、データコピーとコンテキストスイッチを回避します。これにより、レイテンシーの短縮、スループットの向上、CPU 使用率の低減が実現します。

ACS では、Pod に alibabacloud.com/hpn-type: "rdma" ラベルを追加することで、RDMA ネットワーク上でアプリケーションを実行できます。RDMA ネットワークを有効にすると、RDMA ネットワークインターフェースカード (NIC) がコンテナーに追加されます。その後、NCCL 環境変数を構成して、ACS で分散トレーニングと推論を実行できます。

RDMA をサポートする GPU モデル

ACS は複数の GPU モデル をサポートしています。次の表に、パフォーマンス専有型 RDMA ネットワークをサポートする GPU モデルとその制約を示します。

カードモデル

compute-class

RDMA サポートの制約

対応する RDMA NIC タイプ

GU8TF

gpu

8 カード Pod のみが RDMA をサポートします。

タイプ 1

GU8TEF

gpu

8 カード Pod のみが RDMA をサポートします。

タイプ 1

GX8SF

gpu

8 カード Pod のみが RDMA をサポートします。

タイプ 1

P16EN

gpu

16 カード Pod のみが RDMA をサポートします。

タイプ 2

gpu-hpn

1、2、4、8、16 カード Pod が RDMA をサポートします。

RDMA NIC のタイプが異なると、以降のセクションで説明するように、必要な NCCL 環境変数の構成も異なります。

NCCL の構成

ACS の GPU モデルによって使用される RDMA NIC は異なります。これは NCCL の構成方法に影響します。ACS の GPU は 2 つの構成メソッドをサポートしています。

RDMA NIC タイプ 1 (GU8TF/GU8TEF/GX8SF)

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

RDMA NIC タイプ 2 (P16EN)

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

環境変数の説明

環境変数

環境変数

NCCL_SOCKET_IFNAME

NCCL が接続を確立するために使用するポート。ACS では、接続を確立するために eth0 を使用します。

NCCL_IB_DISABLE

IB/RoCE ネットワークを無効にして、代わりに IP ソケットを使用するかどうかを指定します。値が 1 の場合、IB/RoCE は無効になります。P16EN の場合は、これを 1 に設定する必要があります。

NCCL_IB_HCA

RDMA 通信用の NIC を指定します。P16EN の場合は、これを空に設定する必要があります。

NCCL_DEBUG

NCCL デバッグログの出力レベルを制御します。

ここで指定されていない他の環境変数の詳細については、「NCCL の公式ドキュメント」をご参照ください。

使用方法

以下の手順では、ACS クラスターで RDMA を使用して実行される GPU アプリケーションをデプロイする方法について説明します。

  1. 次の YAML コンテンツを含む dep-demo-hpn-gpu.yaml という名前のファイルを作成します。

    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
            # GPU モデルを GU8TF として指定します。必要に応じてこの値を変更してください。
            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. アプリケーションをデプロイします。

    kubectl apply -f dep-demo-hpn-gpu.yaml
  3. アプリケーション Pod が Running 状態になるのを待ちます。

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

    期待される出力:

    dep-demo-hpn-gpu-5d9xxxxxb6-xxxxx   1/1     Running   0          25m16s
  4. パフォーマンス専有型ネットワーク NIC の情報を表示します。

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

    期待される出力:

    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)

    出力は、パフォーマンス専有型 NIC hpn0 が Pod に構成されていることを示しています。