Pool con accelerazione della GPU di Apache Spark in Azure Synapse Analytics (anteprima)
Azure Synapse Analytics supporta ora pool di Apache Spark accelerati con unità di elaborazione grafica (GPU).
Usando GPU NVIDIA, data scientist e ingegneri possono ridurre il tempo necessario per eseguire pipeline di integrazione dei dati, assegnare punteggi ai modelli di Machine Learning e altro ancora. Questo articolo descrive come creare e usare pool con accelerazione GPU con Azure Synapse Analytics. Questo articolo illustra anche i driver e le librerie GPU preinstallati come parte del runtime con accelerazione GPU.
Attenzione
Notifica relativa alla deprecazione e disabilitazione per le GPU nel runtime di Azure Synapse per Apache Spark 3.1 e 3.2
- L'anteprima con accelerazione della GPU è ora deprecata nel runtime di Apache Spark 3.2 (deprecato). Per i runtime deprecati non sono disponibili correzioni di bug e funzionalità. Questo runtime e l'anteprima con accelerazione della GPU corrispondente in Spark 3.2 sono stati ritirati e disabilitati a partire dall'8 luglio 2024.
- L'anteprima accelerata della GPU è ora deprecata nel runtime di Azure Synapse 3.1 (deprecato). Il runtime di Azure Synapse per Apache Spark 3.1 ha raggiunto la fine del supporto lo scorso 26 gennaio 2023. Il supporto ufficiale è stato sospeso il 26 gennaio 2024 e a partire da tale data non sono stati più risolti i problemi relativi ai ticket di supporto né fornite correzioni ai bug o aggiornamenti della sicurezza.
Nota
L'anteprima abilitata per la GPU di Azure Synapse è stata deprecata.
Creare un pool con accelerazione GPU
Per semplificare il processo di creazione e gestione dei pool, Azure Synapse si occupa della preinstallazione di librerie di basso livello e della configurazione di tutti i requisiti di rete complessi tra i nodi di calcolo. Questa integrazione consente agli utenti di iniziare a usare pool con accelerazione GPU in pochi minuti.
Nota
- I pool con accelerazione GPU possono essere creati nelle aree di lavoro situate negli Stati Uniti orientali, nell’Australia orientale e nell’Europa settentrionale.
- I pool con accelerazione GPU sono disponibili solo con il runtime di Apache Spark 3.
Runtime con accelerazione GPU
Driver GPU, CUDA e cuDNN NVIDIA
Azure Synapse Analytics offre ora pool di Apache Spark con accelerazione GPU, che includono varie librerie e configurazioni NVIDIA. Per impostazione predefinita, Azure Synapse Analytics installa il driver e le librerie NVIDIA necessari per usare GPU nel driver Spark e nelle istanze di lavoro:
- CUDA 11.2
- libnccl2=2.8.4
- libnccl-dev=2.8.4
- libcudnn8=8.1.1
- libcudnn8-dev=8.1.1
Nota
Questo software contiene il codice sorgente fornito da NVIDIA Corporation. In particolare, per supportare i pool con accelerazione GPU, i pool di Apache Spark di Azure Synapse includono il codice degli esempi CUDA.
Contratto di licenza con l'utente finale (EULA) NVIDIA
Quando si seleziona un'opzione Hardware con accelerazione GPU in Synapse Spark, si accettano in modo implicito i termini e le condizioni del contratto di licenza NVIDIA per quanto riguarda:
- CUDA 11.2: Contratto di licenza per l’utente finale:: Documentazione su CUDA Toolkit (nvidia.com)
- libnccl2=2.8.4: nccl/LICENSE.txt in master · NVIDIA/nccl (github.com)
- libnccl-dev=2.8.4: nccl/LICENSE.txt in master · NVIDIA/nccl (github.com)
- libcudnn8=8.1.1: Contratto di licenza software :: Documentazione cuDNN su NVIDIA Deep Learning
- libcudnn8-dev=8.1.1: Contratto di licenza software :: Documentazione cuDNN su NVIDIA Deep Learning
- Librerie CUDA, NCCL e cuDNN e il Contratto di licenza per l'utente finale NVIDIA (con supplemento NCCL) per la libreria NCCL
Accelerare i carichi di lavoro ETL
Con il supporto predefinito per RAPIDS Accelerator per Apache Spark di NVIDIA, i pool di Spark con accelerazione della GPU in Azure Synapse possono migliorare significativamente le prestazioni rispetto ai benchmark analitici standard senza richiedere modifiche al codice. Questo pacchetto è basato su NVIDIA CUDA e UCX, e consente l'accelerazione della GPU di SQL, operazioni DataFrame e sequenze casuali di Spark. Poiché non sono necessarie modifiche al codice per sfruttare queste accelerazioni, gli utenti possono anche accelerare le pipeline di dati che si basano sull'indicizzazione Delta Lake di Linux Foundation o Hyperspace di Microsoft.
Per altre informazioni su come usare NVIDIA RAPIDS Accelerator con il pool con accelerazione GPU in Azure Synapse Analytics, vedere questa guida su come migliorare le prestazioni con RAPIDS.
Eseguire il training di modelli di Deep Learning
I modelli di Deep Learning comportano spesso un elevato utilizzo di dati e calcolo. Per questo motivo, le organizzazioni spesso accelerano il processo di training con cluster abilitati per la GPU. In Azure Synapse Analytics le organizzazioni possono creare modelli usando framework come Tensorflow e PyTorch. Gli utenti possono quindi aumentare le prestazioni dei modelli di Deep Learning con Horovod e Petastorm.
Per altre informazioni su come eseguire processi di training di modelli di deep learning distribuiti Analytics, vedere le guide seguenti: - Esercitazione: training distribuito con Horovod e Tensorflow - Esercitazione: training distribuito con Horovod e PyTorch
Migliorare i carichi di lavoro di assegnazione dei punteggi di apprendimento automatico
Molte organizzazioni si basano su processi di assegnazione dei punteggi batch di grandi dimensioni per l'esecuzione frequente durante intervalli di tempo ristretti. Per ottenere processi di assegnazione dei punteggi batch migliorati, è anche possibile usare pool di Spark con accelerazione della GPU con la libreria Hummingbird di Microsoft. Con Hummingbird, gli utenti possono prendere i modelli di ML tradizionali basati su albero e compilarli in calcoli tensor. Hummingbird consente agli utenti di sfruttare facilmente l'accelerazione hardware nativa e i framework di rete neurale per accelerare l’assegnazione dei punteggi del modello di ML senza dover riscrivere i propri modelli.