GPU Coder

 

GPU Coder

Generare codice CUDA per GPU NVIDIA

GPU Coder™ genera codice CUDA® ottimizzato dal codice MATLAB® per il deep learning, la visione embedded e i sistemi autonomi. Il codice generato consente di richiamare automaticamente le librerie CUDA di NVIDIA ottimizzate, tra cui cuDNN, cuSolver e cuBLAS. Può essere integrato nel tuo progetto in forma di codice sorgente, librerie statiche o librerie dinamiche e utilizzato per la prototipazione su GPU quali NVIDIA Tesla® e NVIDIA Tegra®. Puoi utilizzare il CUDA generato in MATLAB per accelerare le porzioni computazionalmente onerose del codice MATLAB. GPU Coder consente di incorporare il codice CUDA preesistente negli algoritmi MATLAB e nel codice generato.

Quando viene utilizzato con Embedded Coder®, GPU Coder consente di verificare il comportamento numerico del codice generato tramite test software-in-the-loop (SIL).

Generare codice CUDA rapido e flessibile

Genera codice CUDA ottimizzato. Distribuisci codice senza royalty.

Distribuire algoritmi senza royalty

Compila ed esegui il codice generato su GPU NVIDIA conosciute, dai sistemi desktop ai data center e all’hardware embedded. Il codice generato è senza royalty: distribuiscilo gratuitamente ai tuoi clienti per applicazioni commerciali.

Esplora la gallery (2 images)

Generare codice da toolbox e funzioni supportate

GPU Coder genera il codice da una vasta gamma di costrutti del linguaggio MATLAB, che i progettisti utilizzano per sviluppare algoritmi come componenti di sistemi di dimensioni maggiori. Ciò include oltre 390 operatori e funzioni da MATLAB e toolbox aggiuntivi.

Supporto per linguaggio e toolbox MATLAB per la generazione di codice.

Incorporare codice preesistente

Utilizza le funzionalità di integrazione del codice preesistente per incorporare codice CUDA ottimizzato o affidabile nei tuoi algoritmi MATLAB ed eseguire i test in MATLAB, quindi richiama lo stesso codice CUDA dal codice generato.

Integrazione di codice CUDA esistente nel codice generato.

Generare codice CUDA da reti di deep learning

Distribuisci reti di deep learning addestrate con Deep Learning Toolbox.

Distribuire algoritmi di deep learning end-to-end

Distribuisci una serie di reti di deep learning addestrate come ResNet-50 e SegNet da Deep Learning Toolbox™ a GPU NVIDIA. Genera codice per la pre-elaborazione e la post-elaborazione insieme alle reti di deep learning addestrate per distribuire algoritmi completi.

Distribuzione di una serie di reti di deep learning come SegNet.

Generare 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 consente di richiamare automaticamente le librerie ottimizzate, tra cui TensorRT™ e cuDNN.

Inferenza di immagini singole con VGG-16 su una GPU Titan V tramite cuDNN.

Migliorare l’ottimizzazione con TensorRT

Genera codice che si integra con NVIDIA TensorRT, un runtime e ottimizzatore di inferenze di deep learning ad alte prestazioni. Utilizza tipi di dati INT8 o FP16 per incrementare ulteriormente le prestazioni rispetto al tipo di dati standard FP32.

Miglioramento della velocità di esecuzione con tipi di dati INT8 e TensorRT.

Ottimizzare il codice generato

Sfrutta le ottimizzazioni applicate automaticamente al codice generato da GPU Coder. Utilizza modelli di progettazione per aumentare ulteriormente le prestazioni.

Ottimizzare l’utilizzo della memoria riducendo al minimo i trasferimenti CPU-GPU

GPU Coder analizza, identifica e suddivide automaticamente i segmenti del codice MATLAB per eseguirlo su CPU e GPU. Inoltre, consente di ridurre al minimo il numero di copie di dati tra CPU e GPU. Utilizza gli strumenti di profiling per identificare altri potenziali colli di bottiglia.

Report di profiling che identificano potenziali colli di bottiglia.

Richiamare le librerie ottimizzate

Il codice generato con GPU Coder consente di richiamare le librerie CUDA di NVIDIA ottimizzate, tra cui TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS e Thrust. Quando possibile, il codice generato dalle funzioni dei toolbox MATLAB viene mappato in base alle librerie ottimizzate.

Integrazione di codice CUDA esistente nel codice generato.

Utilizzare modelli di progettazione per accelerare ulteriormente le prestazioni.

I modelli di progettazione come l’elaborazione stencil utilizzano la memoria condivisa per aumentare la larghezza di banda della memoria. Vengono applicati automaticamente quando si utilizzano alcune funzioni come la convoluzione. Puoi inoltre richiamarli manualmente utilizzando pragma specifici.

Modello di progettazione dell’elaborazione stencil.

Prototipare sull’hardware

Accedi velocemente all’hardware con la conversione automatica del tuo algoritmo in codice CUDA.

Prototipare su piattaforme NVIDIA Jetson e DRIVE

Automatizza la cross-compilazione e la distribuzione del codice generato alle piattaforme NVIDIA Jetson™ e DRIVE™ utilizzando il pacchetto di supporto GPU Coder™ per le GPU NVIDIA®.

Prototipazione su piattaforme NVIDIA Jetson.

Accedere 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. Costruisci e distribuisci il tuo algoritmo alla scheda insieme al codice di interfaccia periferico per l’esecuzione autonoma.

Accesso a periferiche e sensori da MATLAB e dal codice generato.

Dalla prototipazione alla produzione

Utilizza GPU Coder con Embedded Coder® per tracciare in modo interattivo il tuo codice MATLAB parallelamente al CUDA generato. Verifica il comportamento numerico del codice generato eseguito sull’hardware tramite i test software-in-the-loop (SIL) e processor-in-the-loop (PIL).

Report di tracciabilità interattiva utilizzando GPU Coder con Embedded Coder.

Accelerare gli algoritmi

Genera codice CUDA e compilalo per utilizzarlo in MATLAB.

Accelerare gli algoritmi utilizzando GPU

Richiama il codice CUDA generato come una funzione MEX dal tuo codice MATLAB per velocizzarne l'esecuzione, anche se le prestazioni varieranno in base alla natura del tuo codice MATLAB. Profila le funzioni MEX generate per identificare i colli di bottiglia e concentrare i tuoi sforzi di ottimizzazione.

Funzionalità recenti

Rilevatore di oggetti YOLO V2

Generare codice dal rilevatore di oggetti YOLO V2 per target cuDNN e TensorRT

Supporto TensorRT

Generare codice che sfrutta l'ottimizzazione FP16 nelle applicazioni di inferenza per il deep learning

Funzione di trasposizione ottimizzata CUDA

Applica le trasposizioni utilizzando la memoria condivisa per ottimizzare le prestazioni

Supporto variabili illimitate

Generare codice per variabili illimitate la cui dimensione massima non è nota al momento della compilazione

Generazione di codice per le funzioni pdist, pdist2 e cwt

Generare codice per statistica, machine learning e funzioni wavelet aggiuntivi

Guarda le note di rilascio per ulteriori informazioni su queste feature e funzioni corrispondenti.

Prova gratuita

30 giorni di esplorazione a tua disposizione.

Scarica ora

Pronto per acquistare?

Richiedi una quotazione ed esplora i prodotti correlati.

Sei uno Studente?

Acquista MATLAB e Simulink per studenti.

Scopri di più