Corso di formazione Programmazione GPU con OpenACC
OpenACC è uno standard aperto per la programmazione eterogenea che consente a un codice di eseguirsi su diverse piattaforme e dispositivi, come CPU multi-core, GPU, FPGA e altro ancora.
Questo corso formativo dal vivo, tenuto da un istruttore (online o in sede), è rivolto a sviluppatori di livello principiante e intermedio che desiderano utilizzare OpenACC per programmare dispositivi eterogenei ed sfruttarne il parallelismo.
Al termine del corso, i partecipanti saranno in grado di:
- Configurare un ambiente di sviluppo OpenACC.
- Scrivere ed eseguire un programma base in OpenACC.
- Aggiungere al codice direttive e clausole OpenACC.
- Utilizzare l’API e le librerie fornite da OpenACC.
- Profilare, depurare ed ottimizzare i programmi scritti in OpenACC.
Modalità del corso
- Lezioni interattive e dibattiti guidati.
- Moltissimi esercizi pratici da svolgere.
- Sviluppo hands-on in un ambiente di laboratorio reale.
Opzioni di personalizzazione del corso
- Per richiedere una formazione su misura, contattateci per organizzarla.
Struttura del corso
Introduzione
- Cos’è OpenACC?
- OpenACC rispetto a OpenCL, CUDA e SYCL
- Panoramica delle caratteristiche e dell’architettura di OpenACC
- Configurazione dell’ambiente di sviluppo
Primi passi
- Creazione di un progetto OpenACC in Visual Studio Code
- Analisi della struttura e dei file del progetto
- Compilazione ed esecuzione del programma
- Visualizzazione dei risultati mediante printf e fprintf
Direttive e clausole di OpenACC
- Comprensione delle direttive e delle clausole previste da OpenACC
- Utilizzo delle direttive parallele per creare aree di esecuzione concorrente
- Adozione delle direttive kernel affinché il compilatore gestisca autonomamente il parallelismo
- Sfruttamento delle direttive ciclo per rendere i loop eseguibili in parallelo
- Gestione dei trasferimenti di dati grazie alle direttive dedicate
- Sincronizzazione dei dati mediante le direttive update
- Massimizzazione del riutilizzo dei dati tramite le direttive legate alla cache
- Realizzazione di funzioni specifiche per dispositivo grazie alle direttive routine
- Sincronizzazione degli eventi tramite le direttive wait
API di OpenACC
- Ruolo svolto dall’API di OpenACC nel contesto dello sviluppo
- Ottenimento informazioni sui dispositivi e sulle loro capacità
- Impostazione del numero e del tipo di dispositivo da utilizzare
- Gestione degli errori e delle eccezioni emerse durante l’esecuzione
- Creazione e sincronizzazione di eventi specifici
Librerie e interoperabilità di OpenACC
- Nozioni fondamentali sulle librerie proposte da OpenACC nonché sulla loro interoperabilità
- Impiego delle librerie matematiche, per la generazione casuale di dati e quelle relative ai numeri complessi
- Integrazione con altri modelli di sviluppo quali CUDA, OpenMP e MPI
- Integrazione con le librerie specifiche per GPU, come ad esempio cuBLAS e cuFFT
Strumenti di supporto per OpenACC
- Nozioni generali sugli strumenti a disposizione per lo sviluppo in ambiente OpenACC
- Funzionalità legate alla profilatura e al debug dei programmi prodotti
- Analisi delle prestazioni mediante l’utilizzo di PGI Compiler, NVIDIA Nsight Systems ed Allinea Forge
Ottimizzazione
- Fattori determinanti per le performance dei programmi OpenACC
- Tecniche utili ad ottimizzare la località dei dati e a ridurre i trasferimenti indesiderati
- Strategie volte ad ottimizzare il parallelismo a livello di ciclo, nonché l’unione di più cicli in un’unica operazione parallela
- Riferimenti per migliorare il parallelismo e la fusione dei kernel elaborati dal programma
- Metodologie utili a incrementare il livello di vettorizzazione e a procedere all’auto-tuning del codice
Riepilogo ed indicazioni per proseguire lo studio
Requisiti
- Conoscenza dei linguaggi C/C++ o Fortran e dei concetti fondamentali della programmazione parallela
- Nozioni di base sull’architettura dei computer e sulla gerarchia della memoria
- Esperienza nell’utilizzo di strumenti da riga di comando e editor di codice
Destinatari del corso
- Sviluppatori desiderosi di imparare a utilizzare OpenACC per programmare dispositivi eterogenei ed esprimere al meglio il loro parallelismo
- Sviluppatori interessati a scrivere codice portabile e scalabile in grado di funzionare su svariate piattaforme e dispositivi
- Programmatori che desiderano approfondire gli aspetti più elevati della programmazione eterogenea e migliorare la produttività nel proprio lavoro
I corsi di formazione interaziendali richiedono più di 5 partecipanti.
Corso di formazione Programmazione GPU con OpenACC - Prenotazione
Corso di formazione Programmazione GPU con OpenACC - Richiesta
Programmazione GPU con OpenACC - Richiesta di consulenza
Corsi in Arrivo
Corsi relativi
Sviluppo di applicazioni AI con Huawei Ascend e CANN
21 oreHuawei Ascend è una famiglia di processori dedicati all’intelligenza artificiale, progettata per eseguire in modo efficace sia inferenze che addestramenti di modelli.
Questo corso pratico e guidato da istruttore (in modalità online o presenziale) si rivolge a ingegneri AI e scienziati dei dati di livello intermedio che desiderano sviluppare ed ottimizzare modelli neurali utilizzando la piattaforma Ascend di Huawei e il toolkit CANN.
Al termine del corso, i partecipanti saranno in grado di:
- Configurare correttamente l’ambiente di sviluppo CANN.
- Creare applicazioni AI impiegando i flussi di lavoro forniti da MindSpore e CloudMatrix.
- Migliorare le prestazioni sui processori NPU Ascend mediante l’utilizzo di operatori personalizzati e tecniche di tiling.
- Distribuire i modelli sviluppati in ambienti edge o cloud.
Modalità del corso
- Lezioni interattive e discussioni guidate.
- Esercitazioni pratiche sull’utilizzo di Huawei Ascend e del toolkit CANN all’interno di applicazioni reali.
- Attività strutturate incentrate sulla creazione, addestramento e distribuzione dei modelli.
Opzioni di personalizzazione del corso
- Per richiedere una formazione su misura in base alla vostra infrastruttura o ai vostri set di dati, vi invitiamo a contattarci per concordare i dettagli.
Distribuzione di modelli AI con CANN e processori AI Ascend
14 oreCANN (Compute Architecture for Neural Networks) è la piattaforma informatica per l’intelligenza artificiale sviluppata da Huawei, finalizzata alla distribuzione e all’ottimizzazione di modelli AI sui processori Ascend.
Questo corso formativo in diretta, tenuto da istruttori (sia online che in sede), si rivolge a sviluppatori ed ingegneri di livello intermedio interessati a distribuire in modo efficiente modelli AI addestrati sull’hardware Ascend di Huawei, utilizzando lo strumento CANN e framework come MindSpore, TensorFlow o PyTorch.
Al termine del corso i partecipanti saranno in grado di:
- Comprendere l’architettura di CANN e il suo ruolo nel processo di distribuzione dei modelli AI.
- Convertire e adattare modelli provenienti da framework popolari in formati compatibili con Ascend.
- Utilizzare strumenti come ATC, il convertitore di modelli OM e MindSpore per l’inferenza su dispositivi edge e nel cloud.
- Individuare e risolvere problemi legati alla distribuzione nonché ottimizzare le prestazioni sull’hardware Ascend.
Struttura del corso
- Lezioni interattive e dimostrazioni pratiche.
- Esercitazioni guidate con l’ausilio degli strumenti CANN, dei simulatori Ascend o di dispositivi fisici.
- Scenario reali di distribuzione basati su modelli AI concreti.
Opzioni di personalizzazione del corso
- Per richiedere una sessione formativa personalizzata, contattateci per concordare i dettagli.
Inferenza e distribuzione di modelli AI con CloudMatrix
21 oreCloudMatrix è la piattaforma unificata di Huawei per lo sviluppo e la distribuzione di intelligenza artificiale, progettata per supportare flussi di lavoro di inferenza scalabili adatti alla produzione.
Questo corso pratico, tenuto da istruttori (in modalità online o in loco), si rivolge a professionisti del settore AI con competenze base o intermedie che desiderano distribuire e monitorare modelli AI utilizzando la piattaforma CloudMatrix in combinazione con CANN e MindSpore.
Al termine del corso, i partecipanti saranno in grado di:
- Utilizzare CloudMatrix per il packaging, la distribuzione e l’erogazione dei modelli AI.
- Convertire e ottimizzare i modelli affinché siano compatibili con le schede Ascend.
- Configurare flussi di lavoro sia per l’inferenza in tempo reale che per quella batch.
- Monitorare le distribuzioni e ottimizzarne le prestazioni negli ambienti produttivi.
Formato del corso
- Lezioni interattive accompagnate da discussioni.
- Esercitazioni pratiche sull’utilizzo di CloudMatrix in scenari reali di distribuzione.
- Attività guidate incentrate sulla conversione, l’ottimizzazione e la scalabilità dei modelli.
Opzioni di personalizzazione del corso
- Per richiedere una formazione su misura in base alla vostra infrastruttura AI o all’ambiente cloud, contattateci per organizzare il corso.
Programmazione GPU su acceleratori AI di Biren
21 oreGli acceleratori AI di Biren sono GPU ad alte prestazioni progettate per carichi di lavoro legati all'intelligenza artificiale e all'elaborazione ad alta performance, supportando sia la formazione che l'inferenza su larga scala.
Questo corso pratico tenuto da un istruttore (sia online che in sede) è rivolto a sviluppatori di livello intermedio e avanzato desiderosi di programmare ed ottimizzare applicazioni utilizzando il stack GPU proprietario di Biren, con confronti concreti rispetto agli ambienti basati su CUDA.
Alla fine del corso i partecipanti saranno in grado di:
- Comprendere l'architettura delle GPU Biren e la gerarchia della memoria.
- Configurare l'ambiente di sviluppo e utilizzare il modello di programmazione fornito da Biren.
- Tradotto e ottimizzato codice scritto in stile CUDA per piattaforme Biren.
- Applicare tecniche di regolazione delle prestazioni e di debug.
Modalità del corso
- Lezioni interattive e dibattiti guidati.
- Utilizzo pratico dello SDK Biren su esempi concreti di carichi di lavoro GPU.
- Esercizi guidati volti al porting e alla regolazione delle prestazioni.
Opzioni di personalizzazione del corso
- Per richiedere un percorso formativo su misura in base alle proprie esigenze di integrazione o allo stack applicativo, non esitate a contattarci.
Sviluppo per Cambricon MLU con BANGPy e Neuware
21 oreGli MLU (Machine Learning Units) di Cambricon sono chip AI specializzati, ottimizzati per l’inferenza e l’addestramento in contesti di edge computing e data center.
Questo corso pratico tenuto da istruttori (in modalità online o presso la vostra sede) è rivolto a sviluppatori di livello intermedio che desiderano creare e distribuire modelli AI utilizzando il framework BANGPy e lo SDK Neuware su hardware Cambricon MLU.
Al termine del corso, i partecipanti saranno in grado di:
- Configurare correttamente gli ambienti di sviluppo BANGPy e Neuware.
- Sviluppare ed ottimizzare modelli basati su Python e C++ per l’utilizzo sugli MLU di Cambricon.
- Distribuire i modelli su dispositivi edge e data center dotati del runtime Neuware.
- Integrare flussi di lavoro legati al machine learning con le funzionalità di accelerazione specifiche degli MLU.
Formato del corso
- Lezioni interattive e dibattiti guidati.
- Esercitazioni pratiche sull’utilizzo di BANGPy e Neuware per sviluppare e distribuire modelli.
- Attività strutturate mirate all’ottimizzazione, all’integrazione e ai test dei modelli.
Opzioni di personalizzazione del corso
- Per richiedere una formazione su misura in base al modello di dispositivo Cambricon o al caso d’uso specifico, contattateci per concordare i dettagli.
Introduzione a CANN per sviluppatori di framework AI
7 oreCANN (Compute Architecture for Neural Networks) è il toolkit di computing AI di Huawei, utilizzato per compilare, ottimizzare e distribuire modelli AI sui processori AI Ascend.
Questo corso formativo guidato da un istruttore (sia online che in presenza) si rivolge a sviluppatori AI alle prime armi che desiderano comprendere come CANN si inserisce nel ciclo di vita dei modelli, dalla fase di addestramento alla distribuzione, e come interagisce con framework come MindSpore, TensorFlow e PyTorch.
Al termine del corso i partecipanti saranno in grado di:
- Comprendere lo scopo e l’architettura del toolkit CANN.
- Configurare un ambiente di sviluppo con CANN e MindSpore.
- Convertire e distribuire un modello AI semplice sull’hardware Ascend.
- Acquisire le basi necessarie per futuri progetti di ottimizzazione o integrazione con CANN.
Modalità del corso
- Lezioni interattive e dibattiti.
- Esercitazioni pratiche sulla distribuzione di modelli semplici.
- Spiegazione passo dopo passo della catena degli strumenti CANN e dei punti di integrazione.
Opzioni di personalizzazione del corso
- Per richiedere un corso su misura, vi invitiamo a contattarci per concordare i dettagli.
CANN per la distribuzione di AI sull’edge
14 oreIl toolkit Ascend CANN di Huawei consente un’inferenza AI estremamente performante su dispositivi edge come l’Ascend 310. CANN mette a disposizione strumenti fondamentali per compilare, ottimizzare e distribuire modelli anche in ambienti caratterizzati da limitate risorse computazionali e di memoria.
Questo corso formativo dal vivo, guidato da istruttori (online o in sede), è rivolto a sviluppatori e integratori AI di livello intermedio che desiderano implementare ed ottimizzare modelli su dispositivi edge Ascend utilizzando la catena degli strumenti CANN.
Al termine del corso, i partecipanti saranno in grado di:
- Preparare e convertire modelli AI per l’Ascend 310 tramite gli strumenti CANN.
- Creare pipeline di inferenza leggere utilizzando MindSpore Lite e AscendCL.
- Ottimizzare le prestazioni dei modelli in ambienti con risorse computazionali e di memoria limitate.
- Distribuire e monitorare applicazioni AI in contesti reali su dispositivi edge.
Modalità del corso
- Lezioni interattive e dimostrazioni pratiche.
- Esercitazioni pratiche con modelli ed scenari tipici per ambienti edge.
- Esempi di distribuzione in tempo reale su hardware edge virtuale o fisico.
Opzioni di personalizzazione del corso
- Per richiedere una formazione personalizzata su questo argomento, contattaci per concordare i dettagli.
Comprendere lo stack di calcolo AI di Huawei: da CANN a MindSpore
14 oreLo stack AI di Huawei, che va dal SDK a basso livello CANN fino al framework ad alto livello MindSpore, offre un ambiente coeso per lo sviluppo e la distribuzione di soluzioni AI ottimizzato per l’hardware Ascend.
Questo corso formativo dal vivo, tenuto da istruttori (in modalità online o in presenza), si rivolge a professionisti tecnici alle prime armi o con competenze intermedie, desiderosi di comprendere il modo in cui i componenti CANN e MindSpore collaborano per gestire il ciclo di vita dell’intelligenza artificiale e orientare le scelte infrastrutturali.
Alla fine del corso, i partecipanti saranno in grado di:
- Comprendere l’architettura a livelli dello stack di calcolo AI di Huawei.
- Individuare come CANN contribuisca all’ottimizzazione dei modelli e alla loro distribuzione a livello hardware.
- Valutare il framework MindSpore e i relativi strumenti rispetto alle alternative disponibili sul mercato.
- Posizionare lo stack AI di Huawei negli ambienti aziendali, cloud o on-premise.
Formato del corso
- Lezioni interattive e dibattiti guidati.
- Demo in tempo reale dei sistemi e analisi di casi pratici.
- Laboratori opzionali per sperimentare il flusso dei modelli da MindSpore a CANN.
Opzioni di personalizzazione del corso
- Per richiedere un percorso formativo su misura, contattaci direttamente per concordare i dettagli.
Ottimizzazione delle prestazioni di reti neurali con il SDK CANN
14 oreL’SDK CANN (Compute Architecture for Neural Networks) rappresenta la base computazionale per l’intelligenza artificiale sviluppata da Huawei, consentendo agli sviluppatori di regolare e ottimizzare le prestazioni delle reti neurali già implementate sui processori AI Ascend.
Questo corso formativo guidato da istruttore (in modalità online o in presenza) si rivolge a sviluppatori di intelligenza artificiale ed ingegneri di sistema esperti, desiderosi di migliorare le prestazioni dell’inferenza sfruttando gli strumenti avanzati offerti da CANN, tra cui il Graph Engine, TIK e lo sviluppo personalizzato di operatori.
Al termine del corso i partecipanti saranno in grado di:
- Comprendere l’architettura runtime di CANN e il ciclo di vita delle prestazioni del sistema.
- Utilizzare gli strumenti di profilazione e il Graph Engine per analisi ed ottimizzazione delle performance.
- Creare e ottimizzare operatori personalizzati tramite TIK e TVM.
- Risolvere i problemi legati ai colli di bottiglia di memoria e aumentare il throughput dei modelli.
Formato del corso
- Lezioni interattive e discussioni guidate.
- Esercitazioni pratiche con analisi in tempo reale delle performance e ottimizzazione degli operatori.
- Attività di ottimizzazione basate su esempi concreti di implementazioni in contesti particolari.
Opzioni di personalizzazione del corso
- Per richiedere un corso su misura, contattateci per concordare i dettagli.
CANN SDK per pipeline di visione artificiale ed elaborazione del linguaggio naturale
14 oreIl CANN SDK (Compute Architecture for Neural Networks) offre strumenti avanzati per la distribuzione e l’ottimizzazione di applicazioni AI in tempo reale nel campo della visione artificiale e dell’elaborazione del linguaggio naturale, in particolare su hardware Huawei Ascend.
Questo corso formativo, tenuto da istruttori (in modalità online o in presenza), si rivolge a professionisti di livello intermedio nel settore dell’AI che desiderano creare, distribuire e ottimizzare modelli visivi e linguistici tramite il CANN SDK per applicazioni produttive.
Al termine del corso i partecipanti saranno in grado di:
- Distribuire e ottimizzare modelli di visione artificiale ed elaborazione del linguaggio naturale utilizzando CANN e AscendCL.
- Utilizzare gli strumenti forniti da CANN per convertire i modelli e integrarli in pipeline operative in tempo reale.
- Ottimizzare le prestazioni di inferenza per compiti come il rilevamento di oggetti, la classificazione e l’analisi del sentiment.
- Progettare pipeline di visione artificiale o elaborazione del linguaggio naturale adatte a implementazioni su edge o nel cloud.
Modalità del corso
- Lezioni interattive ed esempi pratici guidati.
- Laboratori pratici dedicati alla distribuzione dei modelli e all’analisi delle prestazioni.
- Progettazione di pipeline reali basate su casi d’uso concreti di visione artificiale ed elaborazione del linguaggio naturale.
Opzioni di personalizzazione del corso
- Per richiedere un percorso formativo su misura, vi preghiamo di contattarci per concordare i dettagli.
Sviluppo di operatori AI personalizzati con CANN TIK e TVM
14 oreCANN TIK (Tensor Instruction Kernel) e Apache TVM consentono un’ottimizzazione avanzata e una personalizzazione degli operatori dei modelli AI per l’hardware Huawei Ascend.
Questo corso formativo in diretta, tenuto da istruttori (in modalità online o in presenza), è rivolto a sviluppatori di sistema esperti che desiderano creare, distribuire e ottimizzare operatori personalizzati per modelli AI utilizzando il modello di programmazione TIK offerto da CANN e l’integrazione con il compilatore TVM.
Alla fine del corso, i partecipanti saranno in grado di:
- Scrivere e testare operatori AI personalizzati utilizzando il linguaggio DSL TIK per processori Ascend.
- Integrare gli operatori creati nel runtime CANN e nel grafo di esecuzione.
- Utilizzare TVM per la pianificazione, l’auto-ottimizzazione e il benchmarking degli operatori.
- Diagnosticare e ottimizzare le prestazioni a livello di istruzioni per schemi computazionali personalizzati.
Modalità del corso
- Lezioni interattive ed esempi pratici.
- Sviluppo diretto di operatori con l’ausilio delle pipeline TIK e TVM.
- Test e ottimizzazione effettuati su hardware Ascend o tramite simulatori.
Opzioni di personalizzazione del corso
- Per richiedere un programma formativo su misura, contattateci per concordare i dettagli.
Migrazione di applicazioni CUDA verso architetture GPU cinesi
21 oreLe architetture GPU cinesi come Huawei Ascend, Biren e Cambricon MLU offrono alternative a CUDA pensate appositamente per i mercati locali dell’intelligenza artificiale e del calcolo ad alte prestazioni.
Questo corso di formazione dal vivo, con la guida di un istruttore (online o in presenza), si rivolge a programmatori GPU esperti e specialisti di infrastrutture desiderosi di migrare ed ottimizzare le proprie applicazioni CUDA per l’utilizzo su piattaforme hardware cinesi.
Al termine del corso, i partecipanti saranno in grado di:
- Valutare la compatibilità dei propri workload CUDA con le alternative basate su chip cinesi.
- Portare i progetti software scritti in CUDA negli ambienti Huawei CANN, Biren SDK e Cambricon BANGPy.
- Confrontare le prestazioni ottenute e individuare i punti su cui intervenire per ottimizzarle tra le varie piattaforme.
- Risolvere eventuali problemi pratici legati alla compatibilità tra architetture diverse e all’implementazione effettiva.
Formato del corso
- Lezioni interattive con discussioni guidate.
- Esercitazioni pratiche incentrate sulla traduzione di codice e sul confronto delle prestazioni.
- Attività strutturate finalizzate all’adattamento dei programmi a configurazioni multi-GPU.
Opzioni di personalizzazione del corso
- Per richiedere un percorso formativo personalizzato in base alla vostra piattaforma o al progetto CUDA, contattateci direttamente.
Ottimizzazione delle prestazioni su Ascend, Biren e Cambricon
21 oreAscend, Biren e Cambricon sono piattaforme hardware per l’intelligenza artificiale all’avanguardia in Cina; ognuna offre strumenti specifici di accelerazione e profilazione per carichi di lavoro su larga scala.
Questo corso pratico, tenuto da istruttori (in modalità online o in presenza), si rivolge a ingegneri esperti nell’ambito dell’infrastruttura AI e delle prestazioni, desiderosi di ottimizzare i flussi di lavoro legati all’inferenza e all’addestramento su più piattaforme hardware cinesi per l’AI.
Al termine del corso, i partecipanti saranno in grado di:
- Eseguire il benchmark dei modelli sulle piattaforme Ascend, Biren e Cambricon.
- Rilevare eventuali colli di bottiglia del sistema, nonché inefficienze a livello di memoria o calcolo.
- Applicare ottimizzazioni sia a livello di grafo computazionale, sia a livello di kernel e operatori.
- Regolare i pipeline di deployment per migliorare la velocità di esecuzione e ridurre la latenza.
Struttura del corso
- Lezioni interattive ed approfondite discussioni.
- Utilizzo pratico degli strumenti di profilazione e ottimizzazione su ciascuna piattaforma.
- Esercitazioni guidate focalizzate su scenari concreti di ottimizzazione.
Opzioni di personalizzazione del corso
- Qualora si desideri un percorso formativo ad hoc in base all’ambiente di esecuzione o al tipo di modello utilizzato, contattateci per concordare i dettagli.