

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Usa la libreria SMDDP nel tuo script di training PyTorch
<a name="data-parallel-modify-sdp-pt"></a>

A partire dalla libreria SageMaker AI distributed data parallelism (SMDDP) v1.4.0, puoi utilizzare la libreria come opzione di backend per il pacchetto distribuito. [ PyTorch ](https://pytorch.org/tutorials/beginner/dist_overview.html) Per utilizzare SMDDP `AllReduce` e le operazioni `AllGather` collettive, è sufficiente importare la libreria SMDDP all'inizio dello script di training e impostare SMDDP come backend dei moduli distribuiti durante l'inizializzazione del gruppo di processi. PyTorch Con una singola riga di specifica del backend, è possibile mantenere invariati tutti i moduli distribuiti nativi PyTorch e l'intero script di formazione. I seguenti frammenti di codice mostrano come utilizzare la libreria SMDDP come backend dei pacchetti di formazione PyTorch-based distribuiti: [ PyTorch Distributed Data Parallel (DDP)](https://pytorch.org/docs/stable/notes/ddp.html), [ PyTorch Fully Sharded Data Parallelism (FSDP) e. ](https://pytorch.org/docs/stable/fsdp.html) [ DeepSpeed ](https://github.com/microsoft/DeepSpeed) [ Megatron-DeepSpeed ](https://github.com/microsoft/Megatron-DeepSpeed)

## PyTorch Per DDP o FSDP
<a name="data-parallel-enable-for-ptddp-ptfsdp"></a>

Inizializza il gruppo di processi come segue.

```
import torch.distributed as dist
import smdistributed.dataparallel.torch.torch_smddp

dist.init_process_group(backend="smddp")
```

**Nota**  
(Solo per processi PyTorch DDP) Il `smddp` backend attualmente non supporta la creazione di gruppi di sottoprocessi con l'API. `torch.distributed.new_group()` Non è possibile utilizzare il backend `smddp` contemporaneamente ad altri back-end di gruppi di processi come `NCCL` e `Gloo`.

## DeepSpeed Per o Megatron-DeepSpeed
<a name="data-parallel-enable-for-deepspeed"></a>

Inizializza il gruppo di processi come segue.

```
import deepspeed
import smdistributed.dataparallel.torch.torch_smddp

deepspeed.init_distributed(dist_backend="smddp")
```

**Nota**  
Per utilizzare `AllGather` SMDDP con i programmi di avvio basati su `mpirun` (`smdistributed` e `pytorchddp`) in [Avvio di processi di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker](data-parallel-use-api.md), è inoltre necessario impostare la seguente variabile di ambiente nello script di addestramento.  

```
export SMDATAPARALLEL_OPTIMIZE_SDP=true
```

Per una guida generale sulla scrittura di uno script di addestramento PyTorch FSDP, vedi [ Advanced Model Training with Fully Sharded Data Parallel (FSDP) nella documentazione. ](https://pytorch.org/tutorials/intermediate/FSDP_adavnced_tutorial.html) PyTorch

Per una guida generale sulla scrittura di uno script di addestramento PyTorch DDP, vedi Guida [ introduttiva ai dati distribuiti paralleli nella documentazione. ](https://pytorch.org/tutorials/intermediate/ddp_tutorial.html) PyTorch 

Dopo aver completato l’adattamento dello script di addestramento, procedi con [Avvio di processi di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker](data-parallel-use-api.md).