

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS インフラストラクチャに最適化された SMDDP ライブラリとの互換性
<a name="model-parallel-core-features-v2-smddp-allgather"></a>

SageMaker モデル並列処理ライブラリ v2 (SMP v2) は、 AWS インフラストラクチャに最適化された`AllGather`集合通信オペレーションを提供する [SageMaker 分散データ並列処理 (SMDDP) ライブラリ](data-parallel.md)と組み合わせて使用できます。集合通信演算は、分散トレーニングにおいて、複数の GPU ワーカー間で同期し、情報を交換するように設計されています。`AllGather` は、シャーディングデータ並列処理で通常使用される、主要な集合通信演算の 1 つです。SMDDP の `AllGather` 演算の詳細については、「[SMDDP `AllGather` 集合演算](data-parallel-intro.md#data-parallel-allgather)」を参照してください。このような集合通信演算の最適化は、収束に影響を与えることなく、エンドツーエンドのトレーニングを高速化することに直結します。

**注記**  
SMDDP ライブラリは、P4 インスタンスと P4de インスタンスをサポートしています (SMDDP ライブラリの「[サポートされているフレームワーク、 AWS リージョンおよびインスタンスタイプ](distributed-data-parallel-support.md)」も参照してください)。

SMDDP ライブラリは、[プロセスグループ](https://pytorch.org/docs/stable/distributed.html)層を介して PyTorch とネイティブに統合されています。SMDDP ライブラリを使用するには、トレーニングスクリプトに 2 行のコードを追加するだけで済みます。SageMaker モデル並列処理ライブラリ、PyTorch FSDP、DeepSpeed などのトレーニングフレームワークに対応しています。

SMDDP を有効にしてその `AllGather` 演算を使用するには、「[ステップ 1: PyTorch FSDP トレーニングスクリプトを適応させる](model-parallel-use-api-v2.md#model-parallel-adapt-pytorch-script-v2)」の一環として、トレーニングスクリプトに 2 行のコードを追加する必要があります。まず PyTorch Distributed を SMDDP バックエンドで初期化してから、SMP の初期化を実行する必要があります。

```
import torch.distributed as dist

# Initialize with SMDDP
import smdistributed.dataparallel.torch.torch_smddp
dist.init_process_group(backend="smddp") # Replacing "nccl"

 # Initialize with SMP
import torch.sagemaker as tsm
tsm.init()
```

PyTorch 用の [SageMaker フレームワークコンテナ](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#sagemaker-framework-containers-sm-support-only) (SMP v2 の「[サポートされているフレームワークと AWS リージョン](distributed-model-parallel-support-v2.md)」および SMDDP ライブラリの「[サポートされているフレームワーク、 AWS リージョンおよびインスタンスタイプ](distributed-data-parallel-support.md)」も参照) は、SMP バイナリと SMDDP バイナリを事前にパッケージ化したものです。SMDDP ライブラリの詳細については、「[SageMaker AI 分散データ並列処理ライブラリを使用して分散トレーニングを実行する](data-parallel.md)」を参照してください。