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

Platform For AI:eRDMA: パフォーマンス専有型ネットワークを使用した分散トレーニング

最終更新日:Oct 30, 2025

Elastic Remote Direct Memory Access (eRDMA) は、Alibaba Cloud のクラウドベースの弾性 RDMA ネットワークです。PAI 一般計算資源として利用可能な特定の GPU インスタンスタイプは、eRDMA をサポートしています。この機能を使用するには、これらの GPU インスタンスタイプ用の特定のイメージを使用して DLC ジョブを送信します。システムはコンテナーに eRDMA ネットワークインターフェイスカードを自動的にマウントし、分散トレーニングプロセスを高速化します。

制限事項

  • このトピックは、サブスクリプションベースの一般計算資源を使用して送信されるトレーニングジョブにのみ適用されます。

  • この機能には、NCCL バージョン 2.19 以降が必要です。

  • 次の表に、PAI-DLC プラットフォームで eRDMA をサポートする GPU インスタンスタイプと、各タイプで利用可能な eRDMA ネットワークインターフェイスカードの数を示します。

    GPU インスタンスタイプ

    eRDMA ネットワークインターフェイスカードの数

    ecs.ebmgn7v.32xlarge

    2

    ecs.ebmgn8v.48xlarge

    2

    ecs.ebmgn8is.32xlarge

    2

    ecs.ebmgn8i.32xlarge

    4

    ecs.gn8is.2xlarge

    1

    ecs.gn8is.4xlarge

    1

    ecs.gn8is-2x.8xlarge

    1

    ecs.gn8is-4x.16xlarge

    1

    ecs.gn8is-4x.16xlarge

    1

プリセット環境変数

PAI は、eRDMA をサポートするインスタンスタイプに対して eRDMA 機能を自動的に有効にし、デフォルトの NCCL 環境変数を設定します。トレーニングフレームワーク、通信フレームワーク、およびモデルの特性に基づいてこれらの変数を調整できます。最適なパフォーマンスを得るには、プラットフォームが提供するデフォルトの変数を使用してください。

パブリック環境変数

環境変数

PYTHONUNBUFFERED

1

TZ

現在のジョブが実行されるリージョンに基づいて設定されます。値は通常「Asia/Shanghai」です。

eRDMA パフォーマンス専有型ネットワーク変数

説明

ハイフン (-) は、環境変数が対応する環境に適用できないことを示します。

環境変数

NCCL_DEBUG

INFO

NCCL_SOCKET_IFNAME

eth0

NCCL_IB_TC

-

NCCL_IB_SL

-

NCCL_IB_GID_INDEX

1

NCCL_IB_HCA

erdma

NCCL_IB_TIMEOUT

-

NCCL_IB_QPS_PER_CONNECTION

8

NCCL_MIN_NCHANNELS

16

NCCL_NET_PLUGIN

none

カスタムイメージの設定

eRDMA をサポートする一般計算資源を使用するトレーニングジョブを送信する場合、カスタムイメージをビルドして使用できます。カスタムイメージは、次の要件を満たす必要があります。

環境要件

  • CUDA 12.1 以降

  • NCCL 2.19 以降

  • Python 3

eRDMA ライブラリのインストール

eRDMA ライブラリのインストールプロセスは、イメージの Linux ディストリビューションによって異なります。次の例では、Ubuntu 22.04 に eRDMA ライブラリをインストールする方法を示します。

# PGP 署名を追加します。
wget -qO - http://mirrors.cloud.aliyuncs.com/erdma/GPGKEY | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/erdma.gpg

# apt ソースを追加します。
mkdir -p /etc/apt/sources.list.d
echo "deb [ ] http://mirrors.cloud.aliyuncs.com/erdma/apt/ubuntu jammy/erdma main" | sudo tee /etc/apt/sources.list.d/erdma.list

# eRDMA ユーザーモードドライバーパッケージを更新してインストールします。
sudo apt update
sudo apt install -y libibverbs1 ibverbs-providers ibverbs-utils librdmacm1

他のディストリビューションでのインストールプロセスの詳細については、「Docker コンテナーで eRDMA を使用する」をご参照ください。

Dockerfile の例

# ${user_docker_image_url} を既存の Docker イメージに置き換えます。
FROM ${user_docker_image_url}

# RDMA ライブラリがイメージにすでにインストールされている場合は、まずアンインストールします。
RUN rm /etc/apt/sources.list.d/mellanox_mlnx_ofed.list && \
    apt remove -y libibverbs1 ibverbs-providers ibverbs-utils librdmacm1

RUN wget -qO - http://mirrors.aliyun.com/erdma/GPGKEY | gpg --dearmour -o /etc/apt/trusted.gpg.d/erdma.gpg && \
    echo "deb [ ] http://mirrors.aliyun.com/erdma/apt/ubuntu jammy/erdma main" | tee /etc/apt/sources.list.d/erdma.list && \
    apt update && apt install -y libibverbs1 ibverbs-providers ibverbs-utils librdmacm1

MPIJob を使用して NCCL テストを実行する

MPIJob フレームワークを使用するトレーニングジョブを送信するには、次の主要なパラメーターを設定します。その他のパラメーターの詳細については、「MPIJob トレーニングジョブの送信」をご参照ください。

パラメーター

説明

環境情報

ノードイメージ

[イメージアドレス] タブで、準備したカスタムイメージを入力します。

PAI-DLC が提供する NCCL テストイメージを使用できます。このイメージには、eRDMA の依存関係がプリインストールされています: dsw-registry-vpc.<RegionID>.cr.aliyuncs.com/pai/nccl-tests:12.2.2-cudnn8-devel-ubuntu22.04-nccl2.19.3-1-85f9143

<RegionID> をリージョン ID に置き換えます。たとえば、中国 (ウランチャブ) のリージョン ID は cn-wulanchabu です。リージョン ID の詳細については、「リージョンとゾーン」をご参照ください。

起動コマンド

# -np 16 と -npernode 8 フラグは、2 つのノードが使用され、ノードごとに 8 枚のカード、合計 16 枚のカードが使用されることを指定します。
mpirun --allow-run-as-root -np 16 -npernode 8 --bind-to none -mca btl_tcp_if_include eth0 -x UCX_TLS=tcp -x UCX_NET_DEVICES=eth0 -x NCCL_SOCKET_IFNAME=eth0 -x NCCL_IB_DISABLE=0 -x NCCL_IB_GID_INDEX=1 -x NCCL_IB_QPS_PER_CONNECTION=8 -x NCCL_DEBUG=INFO -x LD_LIBRARY_PATH -x NCCL_MIN_NCHANNELS=16 -x NCCL_ALGO=Ring -x PATH /opt/nccl-tests/build/all_reduce_perf -b 32K -e 4G -f 2 -g 1 -t 1 -n 20

リソース情報

リソースソース

[リソースクォータ] を選択します。

リソースクォータ

作成された一般計算資源クォータ (ecs.ebmgn8v.48xlarge インスタンスタイプなど) を選択します。リソースクォータの作成方法の詳細については、「一般計算資源クォータ」をご参照ください。

フレームワーク

[MPIJob] を選択します。

ジョブリソース

次のパラメーターを設定します。

  • ノード数: 2

  • GPU (カード): 8

  • CPU (コア): 64

  • メモリ (GiB): 256

  • 共有メモリ (GiB): 256

次の図は、eRDMA ネットワーク帯域幅の NCCL テストのサンプル結果を示しています。image