Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo presenta il benchmarking HPC-AI in Azure. È progettato per architetti, ingegneri e decision maker che devono:
- Valutare l'infrastruttura di Azure per carichi di lavoro nuovi o esistenti
- Stabilire linee di base delle prestazioni
- Confrontare le famiglie di macchine virtuali usando i dati obiettivo
- Ottimizzare le prestazioni e l'efficienza dei costi
Perché il benchmarking è importante
Il benchmarking fornisce informazioni dettagliate basate su prove che supportano decisioni tecniche e aziendali. Svolge diversi scopi critici per carichi di lavoro HPC e intelligenza artificiale:
- Scegliere l'infrastruttura corretta: associare le caratteristiche del carico di lavoro alla famiglia di macchine virtuali di Azure più adatta.
- Convalidare le prestazioni: confermare che i sistemi distribuiti soddisfino gli obiettivi di throughput e latenza previsti.
- Ottimizzare le configurazioni: identificare i colli di bottiglia tra calcolo, memoria, archiviazione e rete.
- Analizzare l'efficienza dei costi: confrontare i rapporti prezzo-prestazioni tra le opzioni della macchina virtuale.
- Supporto delle decisioni relative all'approvvigionamento: fornire dati sulle prestazioni ripetibili e defensibili agli stakeholder.
Metriche delle prestazioni chiave
Comprendere le metriche di base usate per misurare le prestazioni del sistema HPC è essenziale per la valutazione e il confronto significativi del sistema. Forniscono misurazioni oggettive per il confronto, identificano i colli di bottiglia del sistema consentendo così l'ottimizzazione delle prestazioni e consentono di stimare le prestazioni dell'applicazione. Le metriche variano in base al tipo di carico di lavoro, ma in genere rientrano in quattro categorie.
- Prestazioni di calcolo
- Prestazioni della memoria
- Prestazioni di rete
- Metriche specifiche dell'intelligenza artificiale
Le metriche delle prestazioni di calcolo descrivono la funzionalità di elaborazione non elaborata di un sistema e l'efficacia di tale funzionalità viene realizzata in pratica. FLOPS (operazioni a virgola mobile al secondo) vengono comunemente usate per quantificare la velocità effettiva di calcolo e vengono spesso segnalate da benchmark come HPL (LINPACK). Sebbene le prestazioni di picco rappresentino la capacità teorica massima dell'hardware, le prestazioni sostenute riflettono ciò che le applicazioni raggiungono effettivamente in carichi di lavoro reali ed è quindi un indicatore più significativo per la maggior parte delle valutazioni.
Famiglie di macchine virtuali di Azure per HPC e intelligenza artificiale
Azure offre famiglie di macchine virtuali specializzate ottimizzate per modelli di carico di lavoro diversi.
HPC basato sulla CPU (serie HB)
Le macchine virtuali serie HB sono ottimizzate per la larghezza di banda della memoria e la rete a bassa latenza, rendendole particolarmente adatte per carichi di lavoro HPC tradizionali, ad esempio:
- Fluidodinamica computazionale (CFD)
- Modellazione meteo e climatico
- Analisi degli elementi finiti
Le caratteristiche principali includono:
- Processori AMD EPYC con numero elevato di core
- Larghezza di banda di memoria elevata (incluso HBM nelle generazioni più recenti)
- Rete InfiniBand ad alta velocità
Intelligenza artificiale basata su GPU (serie ND)
Le macchine virtuali serie ND sono progettate per carichi di lavoro con accelerazione GPU, tra cui:
- Formazione di Deep Learning
- Inferenza del modello di linguaggio di grandi dimensioni (LLM)
- Ricerca e sperimentazione di intelligenza artificiale
Queste macchine virtuali sono le seguenti:
- GPU Nvidia data center (H100, H200, Blackwell)
- Capacità di memoria GPU di grandi dimensioni
- Interconnessioni da GPU a GPU e GPU a rete a larghezza di banda elevata
Categorie di benchmarking
Diversi benchmark rispondono a domande diverse. Selezionare i benchmark in base all'aspetto delle prestazioni da valutare.
Benchmark sintetici
I benchmark sintetici isolano componenti di sistema specifici e sono utili per la convalida di base:
- STREAM: misura la larghezza di banda della memoria sostenibile
- HPL (LINPACK): misura le prestazioni di calcolo a virgola mobile di picco
- HPCG: valuta le prestazioni per l'algebra lineare di tipo sparse, più vicino ai carichi di lavoro HPC reali
- Micro-Benchmarks OSU: convalida la latenza MPI e la larghezza di banda
- Test NCCL : misura le prestazioni delle comunicazioni collettive GPU
Benchmarking delle applicazioni
I benchmark delle applicazioni riflettono il comportamento reale e sono spesso più rappresentativi:
- ANSYS Fluent - Prestazioni del risolutore CFD
- WRF - Modellazione meteo e atmosferica
- GROMACS/NAMD - Velocità effettiva dinamica molecolare
- MLPerf Training - prestazioni di addestramento end-to-end dell'intelligenza artificiale
- Inferenza MLPerf: modello che gestisce velocità effettiva e latenza
Come iniziare
Seguire questo percorso consigliato per iniziare il benchmarking in Azure:
1. Set up infrastructure
└── Setting Up Your First HPC Cluster (CycleCloud + Slurm)
2. Run baseline benchmarks
├── Running Your First Benchmark: STREAM (CPU/memory)
└── Running NCCL Benchmarks (GPU communication)
3. Compare VM options
├── CPU HPC VMs Comparison
└── GPU AI VMs Comparison
4. Optimize for your workload
└── Optimizing NCCL for Azure (AI training)
Procedure consigliate
Di seguito sono riportate alcune linee guida per benchmark affidabili e riproducibili:
Prima di eseguire il benchmark
- Usare immagini ottimizzate per HPC/intelligenza artificiale: iniziare con immagini HPC di Azure (AlmaLinux-HPC, Ubuntu-HPC) che includono driver e librerie preconfigurati
- Verificare le versioni dei driver: verificare che i driver GPU, i driver InfiniBand e le versioni NCCL siano correnti
- Verificare la topologia: confermare la configurazione NUMA e l'affinità da GPU a scheda di interfaccia di rete
Durante il processo di benchmarking
- Esecuzioni di riscaldamento: ignora le esecuzioni iniziali per consentire la stabilizzazione delle cache
- Più iterazioni: eseguire almeno 5 iterazioni e riportare la mediana o la media
- Condizioni coerenti: mantenere il sistema operativo, i driver e le configurazioni identici tra i confronti
- Documentare tutti gli elementi: Registrare versioni software, variabili di ambiente e parametri della riga di comando
Problemi comuni da evitare
- Periodi di riscaldamento insufficienti
- Confronto tra versioni software diverse
- Ignorare la topologia NUMA
- Uso di configurazioni predefinite senza ottimizzazione
- Dimensioni del campione inadeguate