Utilizzo della pianificazione basata sulla topologia in Amazon SageMaker HyperPod - Amazon SageMaker AI

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à.

Utilizzo della pianificazione basata sulla topologia in Amazon SageMaker HyperPod

L’efficienza del trasferimento dei dati è un fattore critico nei carichi di lavoro di calcolo ad alte prestazioni e di machine learning. Quando lo utilizzi UltraServers con Amazon SageMaker HyperPod, applica SageMaker HyperPod automaticamente le etichette della topologia alle tue risorse. La pianificazione basata sulla topologia aiuta ad allocare le risorse per ridurre al minimo i costi generali di trasferimento dei dati, considerando sia la topologia delle istanze (come le risorse sono connesse all’interno di un’istanza) che la topologia di rete (come le istanze sono collegate tra loro). Per ulteriori informazioni sulla topologia delle istanze, consulta la sezione Topologia delle EC2 istanze Amazon.

La pianificazione basata sulla topologia funziona sia con i cluster su Slurm che su Amazon EKS. Per informazioni generali su come funziona la topologia con Slurm, consulta la guida alla topologia nella documentazione di Slurm.

In Amazon SageMaker HyperPod, le spese generali di trasferimento dei dati provengono in genere da tre fonti principali:

  • GPU-to-GPU trasferimento dati: tecnologie moderne come gli NVLink NVLink switch consentono il trasferimento di dati ad alta velocità da un paese all'altro GPUs senza coinvolgere altre risorse di elaborazione. Si tratta di un metodo estremamente efficiente, ma di solito limitato a una singola istanza.

  • GPU-to-CPU trasferimento dati: i sistemi NUMA (Non-Uniform Memory Access) dispongono di più bus di sistema su un'unica scheda madre. In un'architettura tipica EC2 come p5.48xlarge, ci sono due diversi bus di sistema, ciascuno con una CPU e 4. GPUs Per prestazioni ottimali, i processi che caricano o leggono i dati to/from GPUs devono essere eseguiti su una CPU collegata allo stesso bus di sistema della GPU.

  • Comunicazioni di rete tra istanze: le istanze trasferiscono i dati attraverso una catena di switch di rete. Il percorso più breve corrisponde in genere alla latenza più bassa.

UltraServer architettura

SageMaker HyperPod supporta l' UltraServer architettura con istanze p6e-gb200.36xlarge. An UltraServer contiene fino a 18 istanze p6e-gb200.36xlarge, di cui 4 per ogni istanza. GPUs Tutti i nodi sono interconnessi tramite NVLink switch, che consentono il trasferimento di dati GPUs tra due senza utilizzare interfacce di rete. GPUs

Questa architettura offre un notevole incremento delle prestazioni rispetto alle singole istanze. Per sfruttare efficacemente questa architettura, i lavori devono essere inviati ai nodi di calcolo da un unico nodo. UltraServer

Etichetta della topologia EKS

In base alla topologia dell' EC2 istanza, etichetta HyperPod automaticamente i nodi con le seguenti etichette:

  • topology.kubernetes.io/region: la zona in cui risiede il nodo. Regione AWS

  • topology.kubernetes.io/zone: la zona di disponibilità in cui risiede il nodo.

  • network-node-layertopology.k8s.aws/: descrive il set di nodi di rete di un'istanza. NetworkNodes In ogni set di nodi di rete, i nodi sono elencati in ordine gerarchico dall’alto verso il basso. Il nodo di rete connesso all’istanza è l’ultimo nell’elenco. Esistono fino a quattro livelli di nodi di rete e ogni nodo è contrassegnato da un’etichetta. I livelli disponibili sono topology.k8s.aws/network-node-layer-1, topology.k8s.aws/network-node-layer-2 e topology.k8s.aws/network-node-layer-3.

  • topology.k8s.aws/ultraserver-id - Un identificatore utilizzato per etichettare ciascuna delle istanze appartenenti allo stesso dominio in un Ultraserver. NVLink Per ulteriori informazioni SageMaker HyperPod sull'utilizzo UltraServers con, Utilizzo UltraServers in Amazon SageMaker HyperPod consulta.

Utilizzando queste etichette, è possibile utilizzare la pianificazione basata sulla topologia nella governance delle HyperPod attività per applicare etichette e annotazioni topologiche per ottimizzare l'efficienza della formazione dei carichi di lavoro. Per ulteriori informazioni, consulta Utilizzo della pianificazione basata sulla topologia nella governance delle attività di Amazon SageMaker HyperPod .

Plugin della topologia di rete Slurm

Slurm fornisce plugin integrati per il riconoscimento della topologia di rete. UltraServer l'architettura in SageMaker HyperPod supporta il plugin a blocchi.

Utilizzo del topology/block plugin

NVIDIA ha sviluppato un topology/block plug-in che fornisce una pianificazione gerarchica su blocchi di nodi con le seguenti caratteristiche:

  • Un blocco è un intervallo consecutivo di nodi

  • I blocchi non possono essere sovrapposti

  • Tutti i nodi di un blocco devono essere assegnati a un processo prima di passare al blocco successivo

  • La dimensione del blocco di pianificazione equivale alla dimensione configurata del blocco più piccolo

  • Ogni livello di blocco superiore ha una dimensione che è una potenza di due rispetto a quella del livello precedente

Questo plugin alloca i nodi in base alla topologia di rete definita.

Configurazione

Per configurare la pianificazione basata sulla topologia con il plug-in, topology/block

  • SageMaker HyperPod configura automaticamente il plugin. topology/block Per configurare il plugin, specifica quanto segue nel file topology.conf nella directory di configurazione Slurm:

    BlockName=us1 Nodes=ultraserver1-[0-17] BlockName=us2 Nodes=ultraserver2-[0-17] BlockSizes=18
  • Assicurati che slurm.conf includa:

    TopologyPlugin=topology/block

Utilizzo

Quando invii i processi, puoi utilizzare i seguenti argomenti aggiuntivi con i comandi sbatch e srun:

  • --segment=N: specifica il numero di nodi da raggruppare. La dimensione del segmento deve essere minore o uguale alla dimensione del blocco di pianificazione.

  • --exclusive=topo: richiedi che nessun altro processo venga inserito nello stesso blocco. Questa operazione è utile per il benchmarking e per le applicazioni sensibili alle prestazioni.

Di seguito sono riportati alcuni scenari di esempio da prendere in considerazione durante l’allocazione dei blocchi.

Allocazione di un intero blocco di nodi su un sistema vuoto

sbatch -N18

Allocazione di due blocchi di nodi su un sistema vuoto

sbatch -N36

Allocazione di 18 nodi su un blocco con più di 6 nodi su un altro blocco

sbatch -N24

Allocazione di 12 nodi su un blocco e di 12 nodi su un altro blocco

sbatch -N24 —segment=12

Con —exclusive=topo, il processo deve essere inserito sul blocco senza altri processi

sbatch -N12 —exclusive=topo

Le migliori pratiche per la topologia UltraServer

Per prestazioni ottimali con UltraServer un'architettura in SageMaker HyperPod:

  • Imposta le dimensioni dei blocchi appropriate: configura BlockSizes=18 (o 17 se un nodo è libero) in modo che corrispondano all' UltraServer architettura.

  • Utilizza i segmenti per una maggiore disponibilità: utilizza --segment=16, --segment=8 o --segment=9 con i comandi srun e sbatch per migliorare la flessibilità della pianificazione dei processi.

  • Considera le dimensioni del processo e del segmento:

    • SeBlockSizes=18, i lavori con un massimo di 18 istanze verranno sempre eseguiti su una singola UltraServer istanza.

    • SeBlockSizes=16, i lavori con meno di 16 istanze verranno sempre eseguiti su una singola istanza UltraServer, mentre i lavori con 18 istanze possono essere eseguiti su una o due istanze. UltraServers

Durante la procedura di segmentazione, considera quanto segue

  • Con--segment=1, ogni istanza può essere eseguita su un'istanza separata. UltraServer

  • Con-N 18 --segment 9, 9 nodi verranno posizionati su uno UltraServer e altri 9 nodi possono essere posizionati sullo stesso o su un altro UltraServer.

  • Con-N 24 --segment 8, il processo può essere eseguito su 2 o 3 UltraServers, con ogni 8 nodi posizionati insieme sullo stesso server.

Limitazioni nella pianificazione SageMaker HyperPod basata sulla topologia

Il plugin topology/block presenta delle limitazioni nel caso di cluster eterogenei (cluster con diversi tipi di istanze):

  • Solo i nodi elencati nei blocchi possono essere pianificati con Slurm

  • Ogni blocco deve avere almeno BlockSizes[0] nodi

Per i cluster eterogenei, considera queste alternative:

  • Non utilizzare il plugin a blocchi con i cluster eterogenei. Invece, isola i UltraServer nodi in una partizione diversa.

  • Crea un cluster separato UltraServers solo nello stesso VPC e usa la configurazione multicluster di Slurm.