Elastic RDMA Interface (ERI) を GPU 加速インスタンスにアタッチすると、仮想プライベートクラウド (VPC) 内の GPU 加速インスタンス間の通信を高速化するために、リモートダイレクトメモリアクセス (RDMA) を有効にできます。eRDMA は、従来の RDMA よりも効率的にデータを転送できるため、GPU 加速インスタンス間の通信を改善し、タスクの処理時間を短縮します。このトピックでは、GPU 加速インスタンスで eRDMA を有効にする方法について説明します。
制約
項目 | 説明 |
インスタンスタイプ | Elastic RDMA Interface (ERI) は、次のインスタンスタイプをサポートします:
|
イメージ | 次のいずれかのイメージを使用します:
|
eRDMA デバイス数 |
|
ネットワークの制約 |
|
操作手順
eRDMA 機能を使用するには、インスタンスに eRDMA ソフトウェアスタックがインストールされ、ERI が有効化された伸縮性ネットワークインターフェイスがアタッチされている必要があります。
インスタンス作成時の eRDMA の設定
ECS コンソールの [カスタム起動] ページに移動します。
ERI をサポートする GPU インスタンスを作成します。
インスタンスを作成する際は、次の設定に注意してください。その他のパラメーターについては、「ウィザードを使用したインスタンスの作成」をご参照ください。
[インスタンスタイプ]:ERI をサポートするインスタンスタイプを選択します。詳細については、「制約」をご参照ください。このトピックでは、 ebmgn8is を例として使用します。
[イメージ]:パブリックイメージを選択すると、GPU ドライバーの自動インストール と eRDMA ソフトウェアスタックのインストール オプションがデフォルトで選択されます。インスタンスの作成後、システムは GPU ドライバー、CUDA、cuDNN、および eRDMA ソフトウェアスタックを自動的にインストールします。
この例では、オペレーティングシステムは Alibaba Cloud Linux 3.2104 LTS 64 ビットで、GPU ドライバーのバージョンは Driver 570.133.20 / CUDA 12.8.1 / CUDNN 9.8.0.87 です。
(任意) ジャンボフレーム:選択したインスタンスでジャンボフレームがサポートされている場合、この機能を有効にすることで
eRDMAの通信パフォーマンスを向上させることができます。ジャンボフレームを有効にすると、より大きな MTU を設定できます。NCCL と LL128 低レイテンシープロトコルを通信に使用する場合、MTU は 8500 である必要があります。ジャンボフレームが有効でない場合、MTU は 1400 にする必要があります。MTU 設定が正しくないと、データの一貫性に問題が発生する可能性があります。
[ENI]:GPU インスタンスを作成すると、設定ウィザードの 帯域幅とセキュリティグループ ページで、eRDMA プライマリ NIC と eRDMA セカンダリネットワークインターフェイスがデフォルトで作成されます。プライマリおよびセカンダリネットワークインターフェイスの右側にある eRDMA インターフェース オプションが自動的に選択されます。
説明インスタンスの実行中に、伸縮性ネットワークインターフェイスの eRDMA を有効または無効にすることはできません。
eRDMA が有効化された 2 つの ENI は、自動的に異なるチャネルにバインドされます。チャネルを指定する必要はありません。
プライマリ NIC は GPU インスタンスからデタッチできません。インスタンスと共に作成および削除されます。
作成したインスタンスの詳細ページに移動し、ENI タブをクリックして NIC タイプを表示します。
プライマリ NIC またはセカンダリ ENI の NIC タイプに「(eRDMAインターフェイス)」が含まれている場合は、Elastic RDMA Interface (ERI) が有効化された ENI がインスタンスにアタッチされていることを示します。
既存の GPU インスタンスに対する eRDMA の設定
ECS コンソールにログインします。
対象のインスタンスを見つけて詳細ページに移動し、ENI タブをクリックして、Elastic RDMA Interface (ERI) が有効化された伸縮性ネットワークインターフェイスがインスタンスにアタッチされているかどうかを確認します。
伸縮性ネットワークインターフェイスで eRDMA が有効になっている場合、[NICタイプ] 列に [プライマリNIC (eRDMAインターフェイス)] または [セカンダリNIC (eRDMAインターフェイス)] が表示されます。
ERI が有効になっている場合は、以降の手順をスキップします。
ERI が有効になっていない場合は、プライマリ NIC またはセカンダリ ENI に設定します。
プライマリ NIC またはセカンダリ ENI に eRDMA を設定します。
説明ジャンボフレームに対応するインスタンスタイプでは、ジャンボフレームを有効にすることで
eRDMA通信パフォーマンスを向上させることができます。ジャンボフレームを有効にすると、より大きな MTU を設定できます。NCCL と LL128 低レイテンシープロトコルを通信に使用する場合、MTU は 8500 である必要があります。ジャンボフレームが有効でない場合、MTU は 1400 にする必要があります。MTU 設定が正しくないと、データの一貫性に問題が発生する可能性があります。
インスタンス作成時にプライマリ NIC またはセカンダリ ENI のいずれにも eRDMA インターフェース オプションを選択しなかった場合、インスタンス作成後に eRDMA が有効化されたセカンダリ ENI を 2 つ作成して有効にすることができます。
GPU インスタンスの作成時に、いずれか 1 つの NIC (プライマリまたはセカンダリ) のみで eRDMA インターフェース オプションを選択した場合、インスタンス作成後に追加で eRDMA が有効化されたセカンダリ ENI を 1 つだけ作成して有効にすることができます。
(オプション) インスタンスへの Elastic RDMA Interface (ERI) ソフトウェアスタックのインストール
パブリックイメージを選択したときに eRDMA ソフトウェアスタックのインストール オプションを選択しなかった場合は、スクリプトを使用するか手動で、eRDMA ソフトウェアスタックをインストールする必要があります。
スクリプトベースのインストール
GPU インスタンスの作成後、次のサンプルスクリプトを使用して、eRDMA ソフトウェアスタック、GPU ドライバー、CUDA、および cuDNN をインストールできます:
#!/bin/sh # インストールするバージョンを指定してください DRIVER_VERSION="570.133.20" CUDA_VERSION="12.8.1" CUDNN_VERSION="9.8.0.87" IS_INSTALL_eRDMA="TRUE" IS_INSTALL_RDMA="FALSE" INSTALL_DIR="/root/auto_install" # .run を使用してドライバーと cuda をインストール auto_install_script="auto_install_v4.0.sh" script_download_url=$(curl http://100.100.100.200/latest/meta-data/source-address | head -1)"/opsx/ecs/linux/binary/script/${auto_install_script}" echo $script_download_url rm -rf $INSTALL_DIR mkdir -p $INSTALL_DIR cd $INSTALL_DIR && wget -t 10 --timeout=10 $script_download_url && bash ${INSTALL_DIR}/${auto_install_script} $DRIVER_VERSION $CUDA_VERSION $CUDNN_VERSION $IS_INSTALL_RDMA $IS_INSTALL_eRDMA手動インストール
nv_peer_memGPU インスタンスを作成した後、OFED ドライバー、eRDMA ドライバー、GPU ドライバーを手動でインストールし、 サービスコンポーネントをロードできます。GPU インスタンスにリモート接続します。
詳細については、「Workbenchを使用したLinuxインスタンスへの接続」をご参照ください。
OFED ドライバーをインストールします。
次のコマンドを実行して、必要なパッケージをインストールします。
Alibaba Cloud Linux 3
yum install rpm-build flex iptables-devel systemd-devel gdb-headless elfutils-devel python3-Cython bison numactl-devel libmnl-devel libnl3-devel libdb-devel libselinux-devel perl-generators elfutils-libelf-devel kernel-rpm-macros valgrind-devel cmake lsof -yCentOS 8.5/8.4/7.9
CentOS 8.5/8.4
wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/centos8/python3-Cython-0.29.32-3.16.x86_64.rpm yum install python3-Cython-0.29.32-3.16.x86_64.rpm -y yum install kernel-rpm-macros perl-generators libmnl-devel valgrind-devel rpm-build systemd-devel libdb-devel iptables-devel lsof elfutils-devel bison libnl3-devel libselinux-devel flex cmake numactl-devel -yCentOS 7.9
sudo yum install python-devel python3-Cython kernel-rpm-macros perl-generators libmnl-devel valgrind-devel rpm-build systemd-devel libdb-devel iptables-devel lsof elfutils-devel bison libnl3-devel libselinux-devel flex cmake numactl-devel -y
Ubuntu 24.04/22.04/20.04/18.04
Ubuntu 24.04
sudo apt-get update -y sudo apt-get install -y pkg-configUbuntu 22.04
sudo apt-get update -y sudo apt-get install -y pkg-configUbuntu 20.04
sudo apt-get update -y sudo apt-get install -y pkg-configUbuntu 18.04
sudo apt-get update sudo apt-get install -y pkg-config sudo apt install -y make dh-python libdb-dev libselinux1-dev flex dpatch swig graphviz chrpath quilt python3-distutils bison libmnl-dev libelf-dev gcc sudo python3
次のコマンドを実行して、OFED パッケージの設定ファイルをダウンロードします。
Alibaba Cloud Linux 3
sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/MLNX_OFED_SRC-24.10-3.2.5.0.tgz sudo tar -xvf MLNX_OFED_SRC-24.10-3.2.5.0.tgz && cd MLNX_OFED_SRC-24.10-3.2.5.0 sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/alibaba_cloud3/3/ofed_alibaba_cloud3.conf sudo rm -rf SRPMS/mlnx-ofa_kernel-24.10-OFED.24.10.3.2.5.1.src.rpm sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/mlnx-ofa_kernel-24.10-OFED.24.10.3.2.5.1.egs.1.src.rpm -O SRPMS/mlnx-ofa_kernel-24.10-OFED.24.10.3.2.5.1.egs.1.src.rpmCentOS 8.5/8.4/7.9
CentOS 8.5/8.4
cd /root wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-5.4-3.5.8.0.tgz tar -xvf MLNX_OFED_SRC-5.4-3.5.8.0.tgz && cd MLNX_OFED_SRC-5.4-3.5.8.0/ wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/alibaba_cloud3/3/ofed_alibaba_cloud3.conf rm -rf SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.src.rpm wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm -O SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpmCentOS 7.9
sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-5.4-3.5.8.0.tgz sudo tar -xvf MLNX_OFED_SRC-5.4-3.5.8.0.tgz && cd MLNX_OFED_SRC-5.4-3.5.8.0/ sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/alibaba_cloud3/3/ofed_alibaba_cloud3.conf sudo rm -rf SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.src.rpm sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm -O SRPMS/mlnx-ofa_kernel-5.4-OFED.5.4.3.5.8.1.egs.1.src.rpm
Ubuntu 24.04/22.04/20.04/18.04
Ubuntu 24.04/22.04/20.04
sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/MLNX_OFED_SRC-debian-24.10-3.2.5.0.tgz sudo tar -xvf MLNX_OFED_SRC-debian-24.10-3.2.5.0.tgz && cd MLNX_OFED_SRC-24.10-3.2.5.0 && curl -O http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/ofed_debian.conf sudo rm -rf SOURCES/mlnx-ofed-kernel_24.10.OFED.24.10.3.2.5.1.orig.tar.gz wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/mlnx-ofed-kernel_24.10.egs.1.OFED.24.10.3.2.5.1.orig.tar.gz -O SOURCES/mlnx-ofed-kernel_24.10.egs.1.OFED.24.10.3.2.5.1.orig.tar.gzUbuntu 18.04
sudo wget http://mirrors.cloud.aliyuncs.com/opsx/ecs/linux/binary/erdma/ofed/MLNX_OFED_SRC-debian-5.4-3.6.8.1.tgz sudo tar -xvf MLNX_OFED_SRC-debian-5.4-3.6.8.1.tgz && cd MLNX_OFED_SRC-5.4-3.6.8.1 && curl -O http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/ofed_debian.conf sudo rm -rf SOURCES/mlnx-ofed-kernel_5.4.orig.tar.gz sudo wget http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/mlnx-ofed-kernel_5.4.egs.orig.tar.gz -O SOURCES/mlnx-ofed-kernel_5.4.egs.orig.tar.gz
お使いのオペレーティングシステムに対応するコマンドを実行して、OFED ドライバーをインストールします。
Alibaba Cloud Linux 3
sudo ./install.pl --config ./ofed_alibaba_cloud3.conf --distro RHEL8 sudo dracut -fCentOS 8.5/8.4/7.9
CentOS 8.5/8.4
./install.pl --config ./ofed_alibaba_cloud3.conf --distro RHEL8CentOS 7.9
sudo ./install.pl --config ./ofed_alibaba_cloud3.conf --distro RHEL7
Ubuntu 24.04/22.04/20.04/18.04
${VERSION_ID}を、お使いの Ubuntu バージョン (24.04 など) に置き換えます。sudo curl -O http://mirrors.cloud.aliyuncs.com/erdma/kernel-fix/deb/ofed_debian.conf sudo ./install.pl --config ./ofed_debian.conf --without-dkms --build-only --kernel-only sudo /usr/bin/dpkg -i --force-confmiss DEBS/ubuntu`lsb_release -s -r`/x86_64/*.deb update-initramfs -u次のコマンドを実行して、
/usr/src/ofa_kernel/`uname -r`ディレクトリが存在するかどうかを確認します。ディレクトリが存在する場合は、次の手順に進みます。
ls /usr/src/ofa_kernel/`uname -r`ディレクトリが存在しない場合は、次のコマンドを実行してシンボリックリンクを作成し、次の手順に進みます。
sudo ln -s /usr/src/ofa_kernel/default /usr/src/ofa_kernel/`uname -r`
インスタンスを再起動します。
OFED ドライバーのインストール後、新しいカーネルモジュールを有効にするためにインスタンスを再起動する必要があります。詳細については、「インスタンスの再起動」をご参照ください。
eRDMA ドライバーをインストールします。
eRDMA ドライバーをダウンロードしてインストールします。
sudo wget http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh sudo bash env_setup.sh --egseadm ツールを使用して、次のコマンドを実行し、eRDMA ドライバーのインストールを検証します。
eadm ver次のような出力は、インストールが成功したことを示します。
[root@xxx ~]# eadm ver Query kernel driver version: 0.2.35説明このトピックでは、ドライバーバージョン 0.2.35 を例として使用します。「command not found」エラーが返されたり、コマンドの実行に失敗した場合は、eRDMA ドライバーを再インストールしてください。
GPU ドライバーをインストールします。
詳細については、「LinuxインスタンスへのNVIDIA GPUドライバーの手動インストール」をご参照ください。
nv_peer_mem サービスコンポーネントをロードします。
(推奨) GPU ドライバー 470.xx.xx 以降
GPUDirect RDMA を有効にするには、nv_peer_mem サービスコンポーネントをロードする必要があります。NVIDIA GPU ドライバー 470.xx.xx 以降にはこのコンポーネントがプリインストールされており、次のコマンドを直接実行して nvidia_peermem モジュールをロードできます。
sudo modprobe nvidia_peermem # lsmod|grep nvidia コマンドを実行して、nvidia_peermem モジュールがロードされているかどうかを確認できます。説明インスタンスが再起動された場合は、nvidia_peermem モジュールを再ロードする必要があります。
470.xx.xx より前の GPU ドライバー
サービスコンポーネントを手動でダウンロードしてインストールする必要があります。次のコードは、コンポーネントのダウンロード、コンパイル、インストールの方法を示しています。
sudo git clone https://github.com/Mellanox/nv_peer_memory.git # nv_peer_mem.ko をコンパイルしてインストールします。 cd nv_peer_memory && make cp nv_peer_mem.ko /lib/modules/$(uname -r)/kernel/drivers/video depmod -a modprobe nv_peer_mem # lsmod|grep nv_peer_mem コマンドを実行して結果を確認できます。 service nv_peer_mem start
帯域幅の検証
GPU インスタンスにリモート接続します。
詳細については、「Workbenchを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、2 つの eRDMA デバイスが期待どおりに動作しているか確認します。
sudo ibv_devinfoデフォルトでは、eRDMA ドライバーのインストールスクリプトは最新のドライバーバージョンをインストールします。以前のバージョンの eRDMA ドライバーをインストールする必要がある場合は、チケットを送信してサポートを依頼してください。
このトピックでは、eRDMA ドライバー バージョン 0.2.37 以降を例として使用します。次の出力は、2 つの eRDMA デバイスが正常に動作していることを示しています。ポートの
stateがPORT_ACTIVEの場合、デバイスは正常な状態です。[ecs-xxx...xxx4gnd0hZ ~]$ sudo ibv_devinfo hca_id: erdma_0 transport: eRDMA (0) fw_ver: 0.2.0 node_guid: 0216:3eff:fe36:1eb4 sys_image_guid: 0216:3eff:fe36:1eb4 vendor_id: 0x1ded vendor_part_id: 4223 hw_ver: 0x0 phys_port_cnt: 1 port: 1 state: PORT_ACTIVE (4) max_mtu: 1024 (3) active_mtu: 1024 (3) sm_lid: 0 port_lid: 0 port_lmc: 0x00 link_layer: Ethernet hca_id: erdma_1 transport: eRDMA (0) fw_ver: 0.2.0 node_guid: 0216:3eff:fe43:9c2a sys_image_guid: 0216:3eff:fe43:9c2a vendor_id: 0x1ded vendor_part_id: 4223 hw_ver: 0x0 phys_port_cnt: 1 port: 1 state: PORT_ACTIVE (4) max_mtu: 1024 (3) active_mtu: 1024 (3) sm_lid: 0 port_lid: 0 port_lmc: 0x00 link_layer: Ethernet説明eRDMA デバイスのポートの
stateがinvalid stateの場合、デバイスは異常な状態です。まず、セカンダリ ENI が正しく設定されているかどうかを確認することをお勧めします。たとえば、ifconfigコマンドを実行して、すべての NIC の設定と IP アドレスが存在することを確認します。次のコマンドを実行して、perftest ツールをインストールします。
sudo yum install perftest -y次のコマンドを実行して、RDMA ネットワーク帯域幅がハードウェアの期待値を満たしているかテストします。
サーバー側で次のコマンドを実行して、クライアントからの接続リクエストをリッスンします。
sudo ib_write_bw -d erdma_0 -F -q 16 --run_infinitely --report_gbits -p 18515接続リクエストとデータパケットを送信するには、クライアント側で次のコマンドを実行します。
sudo ib_write_bw -d erdma_0 -F -q 16 --run_infinitely --report_gbits -p 18515 server_ipこのコマンドでは、
server_ipはサーバーインスタンス上の eRDMA が有効化された ENI のプライベート IP アドレスです。この IP アドレスを確認するには、「IP アドレスの表示」をご参照ください。
説明前述の perftest ベンチマークでは、通信に 1 つの NIC を使用します。お使いのサービスで通信に 2 つの NIC が必要な場合は、2 つの perftest プロセスを開始する必要があります。その後、
-dパラメーターを使用して各プロセスに eRDMA デバイスを指定し、-pパラメーターを使用して異なる通信ポートを指定します。詳細については、「perftest の詳細」をご参照ください。テスト結果には、平均帯域幅が含まれます。次のような出力は、eRDMA 通信が正常であることを示します。
テストと検証
このトピックでは、nccl-tests を例として、eRDMA ネットワークを備えた GPU インスタンスのアプリケーションパフォーマンスをテストする方法を示します。詳細については、「nccl-tests」をご参照ください。
次のコマンドで NCCL をインストールします。
説明公式の NVIDIA NCCL Web サイトからインストールパッケージをダウンロードしてインストールすることもできます。
この例では、NCCL を
/usr/local/ncclにインストールします。要件に応じて、別のパスを指定できます。# NCCL のビルド cd /root git clone https://github.com/NVIDIA/nccl.git cd nccl/ make -j src.lib PREFIX=/usr/local/nccl make install PREFIX=/usr/local/nccl次のコマンドを実行して、NCCL のインストールと libnccl.so ライブラリの存在を確認します。
# NCCL の確認 ls /usr/local/nccl # libnccl.so ライブラリの確認 ls /usr/local/nccl/lib次のコマンドで Open MPI と必要なコンパイラをインストールします。
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.3.tar.gz tar -xzf openmpi-4.1.3.tar.gz cd openmpi-4.1.3 ./configure --prefix=/usr/local/openmpi make -j && make install環境変数を設定します。
NCCL_HOME=/usr/local/nccl CUDA_HOME=/usr/local/cuda MPI_HOME=/usr/local/openmpi export LD_LIBRARY_PATH=${NCCL_HOME}/lib:${CUDA_HOME}/lib64:${MPI_HOME}/lib:$LD_LIBRARY_PATH export PATH=${CUDA_HOME}/bin:${MPI_HOME}/bin:$PATH上記コマンドでは、次のサンプルパスを使用しています。
NCCL_HOMEは NCCL のインストールパス (/usr/local/nccl) を、CUDA_HOMEは CUDA のインストールパス (/usr/local/cuda) を、MPI_HOMEは Open MPI のインストールパス (/usr/local/openmpi) を指します。これらを実際のインストールパスに置き換えてください。~/.bashrcファイルを編集してPATHとLD_LIBRARY_PATH変数を設定した後、次のコマンドを実行して変更を反映させます。source ~/.bashrcテストコードをダウンロードしてコンパイルします。
git clone https://github.com/NVIDIA/nccl-tests cd nccl-tests/ make MPI=1 CUDA_HOME=/usr/local/cuda MPI_HOME=/usr/local/openmpiインスタンス間にパスワードなしの SSH アクセスを設定します。
パスワードなしの SSH アクセスを設定するには、host1 で公開鍵を生成し、それを host2 にコピーします。
# host1 上で ssh-keygen ssh-copy-id -i ~/.ssh/id_rsa.pub ${host2} # host1 上で、このコマンドを実行して接続をテストします。パスワードの入力なしでログインできれば、設定は成功です。 ssh root@${host2}次のコマンドで NCCL の all-reduce パフォーマンスをテストします。
# host1 と host2 をインスタンスの IP アドレスに置き換えます。 mpirun --allow-run-as-root -np 16 -npernode 8 -H host1:8,host2:8 \ --bind-to none \ -mca btl_tcp_if_include eth0 \ -x NCCL_SOCKET_IFNAME=eth0 \ -x NCCL_GIN_TYPE=0 \ -x NCCL_GRAPH_FILE \ -x NCCL_DEBUG=INFO \ -x LD_LIBRARY_PATH \ -x PATH \ ./build/all_reduce_perf -b 4M -e 4M -f 2 -g 1 -t 1 -n 20
eRDMA 設定の検証
eRDMA を設定した後、次のチェックリストを使用して、機能が正しく動作することを確認します。
このセクションは、次の eRDMA 対応 GPU Elastic Bare Metal Instance タイプに適用されます:ecs.ebmgn9g、ecs.ebmgn9gc、ecs.ebmgn9ge、ecs.ebmgn8is、ecs.ebmgn8v。
カテゴリ | 項目 | 検証方法 | 説明 |
ネットワークインターフェース設定 | インスタンスに 2 つの eRDMA ネットワークインターフェースがあること |
| コンソールからインスタンスを作成すると、デフォルトで 2 つの eRDMA ネットワークインターフェースが設定されます。追加の操作は不要です。 |
ネットワークインターフェースの状態が PORT_ACTIVE であること | 次のコマンドを実行し、すべてのポートの状態が | チェックに失敗した場合は、 | |
2 つのネットワークインターフェースが異なる NUMA ノードにアタッチされていること | 次のコマンドを実行し、戻り値が | 両方のコマンドが 0 を返した場合、セカンダリネットワークインターフェースが間違った NUMA ノードにアタッチされています。これを修正するには、次の手順に従います:
| |
ジャンボフレームが有効になっていること | 次のコマンドを実行し、ネットワークインターフェースの MTU が 4096 であることを確認します。 | MTU が 4096 でない場合は、ジャンボフレームを有効にしてから、再度確認してください。 | |
MPCC 輻輳制御アルゴリズムが有効になっていること | 次のコマンドを実行して、輻輳制御アルゴリズムを確認します。 | eRDMA ドライバー 1.5.6 以降のバージョンでは、デフォルトで MPCC アルゴリズムが使用されます。 そうでない場合は、次のコマンドを実行して有効にしてください。 | |
eRDMA ネットワークインターフェースに IP アドレスの競合が存在しないこと |
| この問題は、ACK に Terway ネットワークプラグインを使用している場合によく発生します。この問題が発生した場合は、「Terway ホワイトリスト設定」をご参照ください。 | |
NCCL | NCCL トポロジファイルを指定する (ecs.ebmgn9g、ecs.ebmgn9gc、ecs.ebmgn9ge インスタンスタイプでのみ必須) | トポロジーファイル(l20n.xml)を、 NCCL タスクを開始する前に、次の環境変数を設定します。 | トポロジファイルのダウンロード URL: |
GPU | GPU ACS を無効にして P2P コミュニケーションを改善する (ecs.ebmgn9g、ecs.ebmgn9gc、ecs.ebmgn9ge インスタンスタイプでのみ) | 次のコマンドを実行して ACS の状態を確認します。
|
|
関連ドキュメント
エンタープライズレベルの Elastic Compute Service (ECS) インスタンスで eRDMA を設定し、ビジネスネットワークを変更することなく、超低レイテンシー、高スループット、かつ伸縮性のある RDMA ネットワークサービスを実現します。詳細については、「エンタープライズレベルのインスタンスで eRDMA を有効にする」をご参照ください。
コンテナ内で大規模なデータ転送と高性能なネットワーク通信を必要とするアプリケーションの場合、eRDMA をコンテナ (Docker) 環境に統合できます。これにより、コンテナ化されたアプリケーションは OS カーネルをバイパスしてホストの物理 eRDMA デバイスに直接アクセスでき、より高速なデータ転送と効率的な通信が可能になります。詳細については、「コンテナ (Docker) で eRDMA を有効にする」をご参照ください。
eRDMA を監視または診断し、そのリアルタイムステータスを追跡するには、「eRDMA の監視と診断」をご参照ください。