大規模モデルの AI 並列計算では、通信オーバーヘッドの削減、計算と通信のオーバーラップ、通信効率の向上により、パフォーマンスを最適化できます。これらの目標を達成するために、Lingjun リソース上で高性能ネットワーキングを設定します。
制限事項
これらの設定は、Lingjunリソース を使用するトレーニングジョブにのみ適用されます。
高性能ネットワーク変数の設定
Lingjun リソース上の PAI では、RDMA が有効になっており、最適な NCCL 環境変数が事前設定されています。これらのデフォルト値を使用することも、トレーニングフレームワーク、通信フレームワーク、モデルに基づいて調整することもできます。
デフォルトの変数
次の表に、さまざまな Lingjun 仕様向けに事前設定されているデフォルトの変数を示します。
|
Lingjun 仕様 |
NCCL 変数 |
|
|
各 NCCL 環境変数の詳細については、「環境変数の説明」をご参照ください。
環境変数
次の表では、主要な NCCL 環境変数について説明します。その他の変数については、「NCCLドキュメント」をご参照ください。
|
変数 |
説明 |
|
NCCL_IB_TC |
Alibaba Cloud のネットワークマッピングルールに一致させます。値が正しくないか、設定されていない場合、パフォーマンスが低下します。 |
|
NCCL_IB_GID_INDEX |
値が設定されていないか、正しくない場合、NCCL エラーが発生します。 |
|
NCCL_SOCKET_IFNAME |
接続確立に使用されるネットワークインターフェイスです。値が設定されていない、または正しくない場合は、NCCL 接続に失敗する可能性があります。 |
|
NCCL_DEBUG |
ログレベルを設定します。これを INFO に設定すると、詳細な NCCL ログが出力され、トラブルシューティングが簡素化されます。 |
|
NCCL_IB_HCA |
RDMA 通信用のネットワークインターフェイスコントローラー (NIC) です。必要な値はコンピュートノードによって異なります。値が正しくないか、設定されていない場合、パフォーマンスが低下します。 |
|
NCCL_IB_TIMEOUT |
RDMA 接続のタイムアウトを増やし、フォールトトレランスを向上させます。値が正しくないか、設定されていない場合、トレーニングジョブが中断される可能性があります。 |
|
NCCL_IB_QPS_PER_CONNECTION |
接続あたりのキューペア (QP) 数を増やすと、スループットが向上する可能性があります。 |
イメージの設定
Lingjunリソース 上のトレーニングジョブでは、公式の DLC イメージまたはカスタムイメージを使用できます。
公式イメージ
利用可能な公式 GPU トレーニングイメージは 3 つあります:deepspeed-training:23.06-gpu-py310-cu121-ubuntu22.04、megatron-training:23.06-gpu-py310-cu121-ubuntu22.04、nemo-training:23.06-gpu-py310-cu121-ubuntu22.04 です。これらはすべて China (Ulanqab) リージョンでホストされており、Ubuntu 22.04、Python 3.10、および CUDA 12.1 を使用しています。PyTorch 2.1、Megatron-LM 23.06、DeepSpeed 0.9.5、Transformers 4.29.2、Nemo 1.19.0 が含まれています。
カスタムイメージ
環境要件
-
CUDA 11.2 以降
-
NCCL 2.12.10 以降
-
Python 3
RDMA ライブラリのインストール
カスタムイメージの場合、RDMA ライブラリを手動でインストールする必要があります。次のコマンドを Dockerfile に追加してください:
RUN apt-get update && \
apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends libnl-3-dev libnl-route-3-dev libnl-3-200 libnl-route-3-200 iproute2 udev dmidecode ethtool && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN cd /tmp/ && \
wget http://pythonrun.oss-cn-zhangjiakou.aliyuncs.com/rdma/nic-libs-mellanox-rdma-5.2-2/nic-lib-rdma-core-installer-ubuntu.tar.gz && \
tar xzvf nic-lib-rdma-core-installer-ubuntu.tar.gz && \
cd nic-lib-rdma-core-installer-ubuntu && \
echo Y | /bin/bash install.sh && \
cd .. && \
rm -rf nic-lib-rdma-core-installer-ubuntu && \
rm -f nic-lib-rdma-core-installer-ubuntu.tar.gz
関連トピック
Lingjun リソースでトレーニングジョブを送信する方法については、「トレーニングジョブの作成」をご参照ください。