

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 与针对基础架构进行了优化的 SMDDP 库的兼容性 AWS
<a name="model-parallel-core-features-v2-smddp-allgather"></a>

您可以将 SageMaker 模型并行度库 v2 (SMP v2) 与[SageMaker 分布式数据并行度 (SMDDP) 库](data-parallel.md)结合使用，后者提供针对基础架构进行了优化的集体通信操作。`AllGather` AWS 在分布式训练中，集体通信操作旨在同步多个 GPU 工作人员并在它们之间交换信息。`AllGather` 是通常用于分片数据并行的核心集体通信操作之一。要了解有关 SMDDP `AllGather` 操作的更多信息，请参阅[SMDDP `AllGather` 集体操作](data-parallel-intro.md#data-parallel-allgather)优化此类集体通信操作将直接有助于加快 end-to-end训练速度，而不会对收敛产生副作用。

**注意**  
SMDDP 库支持 P4 和 P4de 实例（另请参阅 SMDDP 库的 [支持的框架 AWS 区域、和实例类型](distributed-data-parallel-support.md)）。

SMDDP 库 PyTorch 通过[流程](https://pytorch.org/docs/stable/distributed.html)组层与原生集成。要使用 SMDDP 库，您只需在训练脚本中添加两行代码。它支持任何训练框架，例如 SageMaker 模型并行库、 PyTorch FSDP 和。 DeepSpeed

要激活 SMDDP 并使用其 `AllGather` 操作，您需要在训练脚本中添加两行代码，作为 [第 1 步：调整你的 PyTorch FSDP 训练脚本](model-parallel-use-api-v2.md#model-parallel-adapt-pytorch-script-v2) 的一部分。请注意，您需要先使用 SMDDP 后 PyTorch 端初始化 Distributed，然后运行 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()
```

SageMaker 的@@ [框架容器](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#sagemaker-framework-containers-sm-support-only) PyTorch （另[支持的框架和 AWS 区域](distributed-model-parallel-support-v2.md)请参阅 SMP v2 和 [支持的框架 AWS 区域、和实例类型](distributed-data-parallel-support.md) SMDDP 库）预先打包了 SMP 二进制文件和 SMDDP 二进制文件。要了解有关 SMDDP 库的更多信息，请参阅 [使用 SageMaker AI 分布式数据并行库运行分布式训练](data-parallel.md)。