GPU Coder genera codice CUDA® ottimizzato da codice MATLAB e modelli Simulink. Il codice generato include kernel CUDA per le parti parallelizzabili degli algoritmi di Deep Learning, visione embedded, radar ed elaborazione di segnali. Per ottenere prestazioni elevate, il codice generato può chiamare NVIDIA® TensorRT™. È possibile integrare il CUDA generato nel progetto sotto forma di codice sorgente o librerie statiche/dinamiche e compilarlo per GPU NVIDIA moderne, comprese quelle integrate sulle piattaforme NVIDIA Jetson™ e NVIDIA DRIVE™. È possibile accedere alle periferiche sulle piattaforme Jetson e DRIVE e incorporare il CUDA scritto manualmente nel codice generato.
GPU Coder consente di profilare il CUDA generato per identificare colli di bottiglia e opportunità di ottimizzazione delle prestazioni (con Embedded Coder). I collegamenti bidirezionali consentono il tracciamento tra il codice MATLAB e il CUDA generato. È possibile verificare il comportamento numerico del codice generato tramite i test Software-In-the-Loop (SIL) e Processor-In-the-Loop (PIL).
Generazione di codice CUDA da MATLAB
Compila ed esegui il codice CUDA generato dagli algoritmi MATLAB sulle GPU NVIDIA più diffuse, da schede RTX per desktop a data center e a piattaforme embedded Jetson e DRIVE. Distribuisci gratuitamente il codice generato senza royalty ai clienti.
Generazione di codice CUDA da Simulink
Utilizza Simulink Coder con GPU Coder per generare codice CUDA dai modelli Simulink e distribuiscilo a GPU NVIDIA. Accelera le parti delle simulazioni Simulink onerose dal punto di vista computazionale su GPU NVIDIA.
Distribuzione su NVIDIA Jetson e DRIVE
GPU Coder automatizza la distribuzione del codice generato sulle piattaforme NVIDIA Jetson e DRIVE. Accedi alle periferiche, acquisisci i dati dei sensori e distribuisci l’algoritmo alla scheda insieme al codice di interfaccia periferico per l’esecuzione autonoma.
Generazione di codice per il Deep Learning
Distribuisci una serie di reti di Deep Learning predefinite o personalizzate su GPU NVIDIA. Genera codice per la pre-elaborazione e la post-elaborazione insieme alle proprie reti di Deep Learning addestrate per distribuire algoritmi completi.
Ottimizzazione del codice generato
GPU Coder applica automaticamente ottimizzazioni come la gestione della memoria, la fusione di kernel e la regolazione automatica. Riduci il footprint di memoria generando codice INT8 o bfloat16. Aumenta ulteriormente le prestazioni tramite l’integrazione con TensorRT.
Profilazione e analisi del codice generato
Utilizza GPU Coder Performance Analyzer per profilare il codice CUDA generato e identificare opportunità di migliorare ulteriormente la velocità di esecuzione e il footprint di memoria.
Utilizzo di pattern di progettazione per incrementare le prestazioni
I pattern di progettazione, comprese le operazioni e le riduzioni di tipo “stencil”, vengono applicati automaticamente, quando disponibili, per aumentare le prestazioni del codice generato. È anche possibile richiamarli manualmente usando pragma specifici.
Registrazione di segnali, regolazione di parametri e verifica del comportamento del codice
Utilizza GPU Coder con Simulink Coder per registrare segnali e regolare parametri in tempo reale. Aggiungi Embedded Coder per un tracciamento interattivo tra il codice MATLAB e il codice CUDA generato per verificare numericamente il comportamento del codice CUDA generato tramite il test SIL.
Accelerazione delle simulazioni MATLAB e Simulink
Richiama il codice CUDA generato come una funzione MEX dal codice MATLAB per velocizzare l’esecuzione. Utilizza Simulink Coder con GPU Coder per accelerare le parti onerose dal punto di vista computazionale dei blocchi funzione MATLAB nei modelli Simulink su GPU NVIDIA.
Risorse sui prodotti:
“MATLAB ci ha messo a disposizione tutti gli strumenti di cui avevamo bisogno per procedere all’annotazione dei dati, alla scelta, ai test e alla regolazione del nostro modello di Deep Learning. In più, GPU Coder ci ha consentito di distribuirlo rapidamente sulle nostre GPU NVIDIA anche se la nostra esperienza in materia di GPU fosse limitata.”
Valerio Imbriolo, gruppo Drass