9.4. RDMA 用のクラスター設定
NVIDIA GPUDirect RDMA は、Remote Direct Memory Access (RDMA) を使用して直接 GPU 相互接続を提供します。RDMA 用にクラスターを設定するには、クラスター管理者が複数の Operator をインストールして設定する必要があります。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
- クラスターには、サポート対象の NVIDIA GPU を備えた複数のワーカーノードがあり、互換性のある NVIDIA 高速ネットワークプラットフォームにアクセスできる。
- 分散ワークロードコンポーネントのインストール の説明に従って、必要な分散トレーニングコンポーネント共に Red Hat OpenShift AI をインストールした。
- 分散ワークロードの管理 の説明に従って、分散トレーニングリソースを設定した。
手順
- OpenShift コンソールにクラスター管理者としてログインします。
OpenShift AI で NVIDIA GPU サポートを有効にします。
このプロセスには、Node Feature Discovery Operator と NVIDIA GPU Operator のインストールが含まれます。詳細は、NVIDIA GPU の有効化 を参照してください。
注記NVIDIA GPU Operator をインストールした後、
ClusterPolicyカスタムリソースインスタンスでrdmaがenabledに設定されていることを確認します。NVIDIA ネットワークリソースの管理を単純化するには、次のように NVIDIA Network Operator をインストールして設定します。
- OpenShift ドキュメントの クラスターへの Operator の追加 の説明に従って、NVIDIA Network Operator をインストールします。
- NVIDIA ドキュメントの Network Operator Application Notes に記載されているサンプルデプロイメントの説明に従って、NVIDIA Network Operator を設定します。
[オプション] Single Root I/O Virtualization (SR-IOV) デプロイメントモードを使用するには、次のステップを実行します。
- OpenShift ドキュメントの SR-IOV Network Operator のインストール セクションの説明に従って、SR-IOV Network Operator をインストールします。
- OpenShift ドキュメントの SR-IOV Network Operator の設定 セクションの説明に従って、SR-IOV Network Operator を設定します。
以下のように、Machine Configuration Operator を使用して、コンテナーエンジン (CRI-O) 設定で非 root ユーザーの固定メモリーの制限を増やします。
-
OpenShift コンソールの Administrator パースペクティブで、Compute
MachineConfigs をクリックします。 - Create MachineConfig をクリックします。
プレースホルダーテキストを次の内容に置き換えます。
マシン設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
default_ulimitsエントリーを編集して、設定に適切な値を指定します。デフォルト制限の詳細は、ナレッジベースソリューション Set default ulimits on CRIO Using machine config を参照してください。 - Create をクリックします。
- ワーカーノードを再起動してマシン設定を適用します。
この設定により、非 root ユーザーは、最も制限の厳しい OpenShift のデフォルトセキュリティーコンテキストで、RDMA を使用してトレーニングジョブを実行できるようになります。
-
OpenShift コンソールの Administrator パースペクティブで、Compute
検証
以下を実行して、Operator が正しくインストールされていることを確認します。
-
OpenShift Console の Administrator パースペクティブで、Workloads
Pods をクリックします。 - Project リストからプロジェクトを選択します。
- 新しくインストールされた各 Operator に対して Pod が実行されていることを確認します。
-
OpenShift Console の Administrator パースペクティブで、Workloads
以下を実行して、RDMA が使用されていることを確認します。
次の例に示すように、
PyTorchJobリソースを編集して、*NCCL_DEBUG*環境変数をINFOに設定します。NCCL デバッグレベルを INFO に設定する
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - PyTorch ジョブを実行します。
Pod ログに次のテキストのようなエントリーが含まれていることを確認します。
Pod ログエントリーの例
NCCL INFO NET/IB : Using [0]mlx5_1:1/RoCE [RO]
NCCL INFO NET/IB : Using [0]mlx5_1:1/RoCE [RO]Copy to Clipboard Copied! Toggle word wrap Toggle overflow