GPU Coder™ genera codice CUDA® ottimizzato dal codice MATLAB® e dai modelli Simulink®. Il codice generato include kernel CUDA per le parti parallelizzabili degli algoritmi di elaborazione dei segnali, deep learning e visione embedded. Per ottenere delle prestazioni elevate, il codice generato richiama delle librerie CUDA NVIDIA® ottimizzate, tra cui TensorRT™, cuDNN, cuFFT, cuSolver e cuBLAS. Il codice può essere integrato nel proprio progetto in forma di codice sorgente, librerie statiche o librerie dinamiche e compilato per desktop, server e GPU integrate su piattaforme NVIDIA Jetson™, NVIDIA DRIVE™ e di altro tipo. Il CUDA generato può essere utilizzato in MATLAB per accelerare le reti di deep learning e altre porzioni computazionalmente onerose dell’algoritmo. GPU Coder consente di incorporare il codice CUDA scritto a mano negli algoritmi e nel codice generato.
Quando si utilizza con Embedded Coder®, GPU Coder consente di verificare il comportamento numerico del codice generato tramite test Software-In-the-Loop (SIL) e Processor-In-the-Loop (PIL).
Inizia ora:
Distribuzione di algoritmi senza royalty
Compila ed esegui il codice generato su GPU NVIDIA diffuse, dai sistemi desktop ai data center e all’hardware embedded. Il codice generato è senza royalty: distribuiscilo gratuitamente ai tuoi clienti per applicazioni commerciali.
Storie di successo con GPU Coder
Scopri come ingegneri e scienziati, operanti in settori diversi, utilizzano GPU Coder per generare codice CUDA per le loro applicazioni.
Generazione di codice da toolbox e funzioni supportate
GPU Coder genera il codice da una vasta gamma di funzionalità del linguaggio MATLAB, che i progettisti utilizzano per sviluppare algoritmi come componenti di sistemi di dimensioni maggiori. Ciò include centinaia di operatori e funzioni da MATLAB e toolbox complementari.
Integrazione del codice preesistente
Utilizza le funzionalità di integrazione del codice preesistente per incorporare codice CUDA altamente ottimizzato o affidabile nei tuoi algoritmi MATLAB per eseguire i test in MATLAB. Poi, richiama lo stesso codice CUDA dal codice generato.
Esecuzione di simulazioni e generazione di codice ottimizzato per GPU NVIDIA
Quando usato con Simulink Coder™, GPU Coder accelera le porzioni computazionalmente onerose dei blocchi MATLAB Function nei modelli Simulink sulle GPU NVIDIA. È possibile generare codice CUDA ottimizzato a partire dal modello Simulink e distribuirlo sulla propria GPU NVIDIA target.
Distribuzione di algoritmi di deep learning end-to-end
Usa diverse tipologie di reti di deep learning addestrate (tra cui ResNet-50, SegNet e LSTM) contenute in Deep Learning Toolbox™ nel tuo modello Simulink e distribuiscilo sulle GPU NVIDIA. Genera codice per la pre-elaborazione e la post-elaborazione insieme alle proprie reti di deep learning addestrate per distribuire algoritmi completi.
Registrazione di segnali, regolazione di parametri e verifica numerica del comportamento del codice
Quando usato con Simulink Coder, GPU Coder consente di registrare segnali e regolare parametri in tempo reale, usando le simulazioni in modalità esterna. Usa Embedded Coder con GPU Coder per eseguire test Software-In-the-Loop e Processor-In-the-Loop che verificano, da un punto di vista numerico, se il comportamento del codice generato corrisponde a quello della simulazione.
Distribuzione di algoritmi di deep learning end-to-end
Distribuisci una serie di reti di deep learning addestrate (tra cui ResNet-50, SegNet e LSTM) da Deep Learning Toolbox™ su GPU NVIDIA. Usa layer di deep learning predefiniti oppure definisci layer personalizzati per un’applicazione specifica. Genera codice per la pre-elaborazione e la post-elaborazione insieme alle proprie reti di deep learning addestrate per distribuire algoritmi completi.
Generazione di codice ottimizzato per l’inferenza
GPU Coder genera codice con un footprint ridotto rispetto ad altre soluzioni di deep learning, poiché genera soltanto il codice necessario per eseguire l’inferenza con l’algoritmo specifico. Il codice generato richiama delle librerie ottimizzate, tra cui TensorRT e cuDNN.
Ulteriore ottimizzazione con TensorRT
Genera codice che si integra con NVIDIA TensorRT, un runtime e ottimizzatore di inferenze di deep learning ad alte prestazioni. Utilizza dati di tipo INT8 o FP16 per incrementare ulteriormente le prestazioni rispetto al tipo di dati standard FP32.
Quantizzazione del deep learning
Esegui la quantizzazione della tua rete di deep learning per ridurre l’uso della memoria e aumentare le prestazioni di inferenza. Analizza e visualizza il tradeoff tra prestazioni aumentate e precisione di inferenza usando l’app Deep Network Quantizer.
Minimizzazione dei trasferimenti di memoria CPU-GPU e ottimizzazione dell’uso della memoria
GPU Coder analizza, individua e suddivide automaticamente i segmenti di codice MATLAB per l’esecuzione su CPU o GPU. Inoltre, minimizza il numero di copie di dati tra la CPU e la GPU. Usa gli strumenti di profilazione per individuare altri potenziali colli di bottiglia.
Richiamo di librerie ottimizzate
Il codice generato con GPU Coder richiama librerie ottimizzate CUDA NVIDIA, tra cui TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS e Thrust. Quando possibile, il codice generato tramite le funzioni dei toolbox MATLAB viene mappato su librerie ottimizzate.
Uso di schemi di progettazione per un’ulteriore accelerazione
Gli schemi di progettazione, come gli “stencil”, usano una memoria condivisa per migliorare la larghezza di banda della memoria. Vengono applicati in automatico quando si usano determinate funzioni come la convoluzione. È anche possibile richiamarli manualmente usando pragma specifici.
Prototipazione su piattaforme NVIDIA Jetson e DRIVE
Automatizza la cross-compilazione e la distribuzione del codice generato sulle piattaforme NVIDIA Jetson e DRIVE utilizzando il pacchetto di supporto GPU Coder per GPU NVIDIA.
Accesso a periferiche e sensori da MATLAB e dal codice generato
Comunica da remoto con il target NVIDIA da MATLAB per acquisire dati da webcam e altre periferiche supportate per la prototipazione iniziale. Distribuisci il tuo algoritmo alla scheda insieme al codice di interfaccia con la periferica per l’esecuzione autonoma.
Dalla prototipazione alla produzione
Utilizza GPU Coder con Embedded Coder per tracciare in modo interattivo il tuo codice MATLAB parallelamente al codice CUDA generato. Verifica il comportamento numerico del codice generato in esecuzione sull’hardware tramite i test Software-In-the-Loop (SIL) e Processor-In-the-Loop (PIL).
Accelerazione degli algoritmi utilizzando GPU in MATLAB
Richiama il codice CUDA generato come una funzione MEX dal tuo codice MATLAB per velocizzare l’esecuzione, anche se le prestazioni varieranno a seconda della natura del codice MATLAB. Esegui la profilazione delle funzioni MEX generate per individuare i colli di bottiglia e concentrare gli sforzi di ottimizzazione.
Accelerazione delle simulazioni Simulink con GPU NVIDIA
Quando usato con Simulink Coder, GPU Coder accelera le porzioni computazionalmente onerose dei blocchi MATLAB Function nei modelli Simulink sulle GPU NVIDIA.