Panoramica del networking GPU

AI Hypercomputer è un sistema di supercomputing che ti aiuta a eseguire il deployment di workload di intelligenza artificiale (AI) e machine learning (ML) multihost utilizzando macchine GPU. I servizi di rete sottostanti che utilizzi nel deployment sono determinati dal tipo di macchina GPU che scegli.

Questo documento ha lo scopo di aiutare architetti, ingegneri di rete e sviluppatori a comprendere i servizi di rete sottostanti correlati alle macchine GPU. Questo documento presuppone che tu abbia una familiarità di base con il networking cloud e i concetti di calcolo distribuito.

Comprendere i servizi di networking delle macchine GPU è il primo passo per eseguire il deployment e gestire correttamente i tuoi carichi di lavoro ed è essenziale per ottimizzare le prestazioni e il goodput. Il goodput, o throughput effettivo, misura il progresso effettivo di un sistema in un'attività di addestramento ML. Questa metrica offre approfondimenti aggiuntivi rispetto a metriche come il tempo totale trascorso o la velocità di throughput non elaborata.

Alcuni tipi di macchine con GPU presentano una gerarchia distinta a più livelli che ottimizza la comunicazione a ogni livello. Questa gerarchia va dal fabric del data center ai cluster ottimizzati per l'AI e alle istanze Compute Engine. Le sezioni seguenti spiegano questi componenti gerarchici.

Architettura di rete GPU

AI Hypercomputer ti aiuta a eseguire il deployment di macchine GPU che utilizzano un'architettura di rete gerarchica e allineata alle guide. La connettività prevedibile e ad alte prestazioni di questo design riduce al minimo il sovraccarico di comunicazione, il che migliora direttamente il goodput consentendo alle GPU di dedicare più tempo al calcolo anziché all'attesa dei dati.

La disposizione delle GPU allineate alla guida è costituita da tre componenti principali:

  • Sottoblocchi:si tratta di unità di base, costituite da un gruppo di host fisicamente collocati su un singolo rack. Uno switch top-of-rack (ToR) collega questi host, consentendo una comunicazione estremamente efficiente e a un solo hop tra due GPU qualsiasi all'interno del sottoblocco. RDMA su Converged Ethernet (RoCE) facilita questa comunicazione diretta. Una libreria NCCL avanzata ottimizzata per la topologia allineata alle guide di Google gestisce i collettivi di comunicazione della GPU.
  • Blocchi:sono costituiti da più sottoblocchi interconnessi con un tessuto non bloccante, che consente un'interconnessione a larghezza di banda elevata. Qualsiasi GPU all'interno di un blocco è raggiungibile in un massimo di due hop di rete. Il sistema espone i metadati di blocchi e sottoblocchi per consentire il posizionamento ottimale dei job.
  • Cluster:sono formati da più blocchi interconnessi, che possono scalare a migliaia di GPU e consentono di eseguire carichi di lavoro di addestramento su larga scala. La comunicazione tra blocchi diversi aggiunge un solo hop aggiuntivo, mantenendo prestazioni e prevedibilità elevate anche su larga scala. Per abilitare il posizionamento intelligente dei job su larga scala, gli orchestratori dispongono anche dei metadati a livello di cluster.

Tecnologie per la comunicazione da GPU a GPU

Le macchine GPU utilizzano una combinazione di tecnologie per fornire prestazioni elevate, throughput elevato e bassa latenza per i carichi di lavoro. Queste tecnologie includono RDMA su Converged Ethernet (RoCE), NIC NVIDIA e la topologia di rete in linea del data center di Google.

Questi tipi di macchine utilizzano la tecnologia NVLink di NVIDIA per creare percorsi di dati diretti e ad altissima velocità tra le NIC NVIDIA su ogni macchina. Inoltre, RoCE consente un RDMA efficiente tra le GPU su macchine diverse.

Stack di rete GPU

Uno stack di rete è una raccolta di protocolli software, driver e livelli che funzionano insieme per implementare la comunicazione da GPU a GPU. Diversi tipi di macchine GPU utilizzano stack di rete diversi. La tabella seguente definisce gli stack di rete e i tipi di macchine associati:

Stack di Networking Descrizione Tipo di macchina GPU
GPUDirect RDMA GPUDirect RDMA consente un percorso diretto per lo scambio di dati tra una GPU e un altro dispositivo. Per le istanze A4X Max e A4X, questo stack di rete utilizza RDMA su Converged Ethernet (RoCE). Questa tecnologia consente ai dispositivi peer di leggere e scrivere direttamente nella memoria della GPU, bypassando la CPU per creare una connessione più efficiente per lo scambio di dati ad alte prestazioni. Per saperne di più, consulta Opzioni di configurazione del cluster con GPUDirect RDMA.
GPUDirect-TCPXO GPUDirect-TCPXO migliora GPUDirect-TCPX scaricando il protocollo TCP. Utilizzando GPUDirect-TCPXO, il tipo di macchina A3 Mega raddoppia la larghezza di banda della rete rispetto ai tipi di macchina A3 High e A3 Edge. Per informazioni su come massimizzare la larghezza di banda di rete sui cluster GKE che utilizzano GPUDirect-TCPXO, consulta Massimizzare la larghezza di banda di rete della GPU nei cluster in modalità Standard e seleziona la scheda GPUDirect-TCPXO.
GPUDirect-TCPX GPUDirect-TCPX aumenta le prestazioni di rete consentendo il trasferimento dei payload dei pacchetti di dati direttamente dalla memoria della GPU all'interfaccia di rete. Per informazioni su come massimizzare la larghezza di banda di rete sui cluster GKE che utilizzano GPUDirect-TCPX, consulta Massimizzare la larghezza di banda di rete della GPU nei cluster in modalità Standard e seleziona la scheda GPUDirect-TCPX.

Rete del piano dati di host e spazio di archiviazione

Un percorso di rete separato gestisce tutto il traffico che non è comunicazione diretta da GPU a GPU. Questo traffico include l'accesso a Cloud Storage, la gestione a livello di host e la comunicazione con altri servizi Google Cloud . Per gestire questo traffico, i tipi di macchina GPU utilizzano schede di interfaccia di rete Google Titanium.

Le NIC Titanium trasferiscono le attività di elaborazione di rete dalla CPU, liberando la CPU per concentrarsi sui tuoi carichi di lavoro. Questa separazione garantisce che il traffico generico e il traffico GPU-GPU dedicato utilizzino interfacce fisiche diverse, impedendo loro di competere per le stesse risorse di sistema.

Ambiente multi-VPC

Tutti i workload operano all'interno di Virtual Private Cloud (VPC) di Google Cloud.

Le macchine con acceleratore ad alte prestazioni sono caratterizzate da un design hardware specializzato che utilizza più interfacce di rete fisiche per gestire diversi tipi di traffico. Per gestire questo design hardware specializzato, è necessario un ambiente multi-VPC, indipendentemente dal fatto che utilizzi Slurm, GKE o Compute Engine per eseguire i carichi di lavoro.

La configurazione multi-VPC specifica dipende dal tipo di macchina GPU e dal relativo stack di rete:

  • A4X Max, A4X, A4 e A3 Ultra con GPUDirect RDMA: queste macchine utilizzano la rete VPC predefinita per il traffico host per uso generico (gVNIC) e richiedono una rete VPC aggiuntiva per il traffico host per uso generico e una rete VPC condivisa per tutto il traffico da GPU a GPU. Il VPC GPU-traffic deve avere il profilo di rete RDMA abilitato. Per saperne di più su questa configurazione per le VM A4 e A3 Ultra, consulta Crea VPC e subnet.

  • A3 Mega con GPUDirect-TCPXO:queste macchine richiedono otto VPC separati per le NIC GPU, che sono dedicate alla comunicazione a larghezza di banda elevata. Per la procedura dettagliata su come completare questa configurazione, consulta Creare VPC e subnet.

  • A3 High con GPUDirect-TCPX:queste macchine richiedono quattro VPC separati per le NIC GPU, che sono dedicate alla comunicazione a larghezza di banda elevata. Per la procedura dettagliata su come completare questa configurazione, consulta Creare VPC e subnet.

Questa configurazione multi-VPC garantisce che le operazioni di archiviazione e altre attività di sistema non competano per la larghezza di banda con le comunicazioni critiche da GPU a GPU.

La configurazione di rete multi-VPC richiesta che devi configurare varia in base al tipo di macchina GPU. Per una guida dettagliata alla disposizione della rete, alle velocità della larghezza di banda e alle NIC per tutti i tipi di macchine GPU supportati, vedi Networking e macchine GPU.

Il seguente diagramma mostra l'architettura di rete per una macchina GPU, evidenziando la separazione del traffico generico e del traffico GPU-GPU dedicato su piani di rete diversi.

Architettura di rete per le macchine GPU AI Hypercomputer.

Come mostrato nel diagramma precedente, le macchine GPU utilizzano percorsi di rete dedicati per diversi tipi di traffico. Il traffico generico, incluso l'accesso alla gestione e allo spazio di archiviazione, passa attraverso le NIC Google Titanium collegate a un VPC. La comunicazione GPU-GPU ad alte prestazioni utilizza interfacce di rete e VPC separati, ottimizzati con tecnologie come RDMA, garantendo larghezza di banda elevata e bassa latenza per i carichi di lavoro AI e ML.

Librerie e componenti di networking

Per massimizzare la larghezza di banda di rete e le prestazioni, le seguenti librerie e componenti di networking ti consentono di utilizzare le GPU con lo stack di networking di Google:

  • gVNIC: Google Virtual NIC (gVNIC) è un'interfaccia di rete virtuale progettata specificamente per Compute Engine. gVNIC migliora le prestazioni, aumenta la coerenza e riduce i problemi di vicinato rumoroso. È supportata e consigliata su tutte le famiglie, i tipi e le generazioni di macchine ed è la vNIC consigliata per la comunicazione host-to-host. Per maggiori informazioni, vedi Utilizzo di Google Virtual NIC.
  • NCCL: la NVIDIA Collective Communications Library (NCCL) fornisce primitive ottimizzate per le operazioni di comunicazione collettiva. È progettato specificamente per ambienti multi-GPU e multi-nodo, utilizzando GPU e networking NVIDIA. Esegui test NCCL per valutare il rendimento dei cluster di cui è stato eseguito il deployment. Per saperne di più, consulta Eseguire il deployment ed eseguire il test NCCCL.
  • Networking multiplo GKE: il supporto di più reti per i pod consente più interfacce su nodi e pod in un cluster GKE. Per informazioni dettagliate su come configurare il networking multiplo nel contesto di GPUDirect, consulta Massimizzare la larghezza di banda di rete della GPU nei cluster in modalità Standard e Opzioni di configurazione del cluster con GPUDirect RDMA.

Per ulteriori dettagli sugli stack software disponibili, consulta Immagini di sistemi operativi e Docker.

Passaggi successivi