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).

Inizia ora:

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)

Storie di successo con GPU Coder

Scopri come ingegneri e scienziati, operanti in settori industriali diversi, utilizzano GPU Coder per generare codice CUDA per le loro applicazioni.

Airbus prototipa il rilevamento automatico di difetti su NVIDIA Jetson TX2.

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.

Generate CUDA Code from Simulink Models

Create models in Simulink and generate optimized CUDA code.

Run Simulations and Generate Optimized Code for NVIDIA GPUs

When used with Simulink Coder™, GPU Coder accelerates compute-intensive portions of MATLAB Function blocks in your Simulink models on NVIDIA GPUs. You can then generate optimized CUDA code from the Simulink model and deploy it to your NVIDIA GPU target.

Simulink model of a Sobel edge detector running on a GPU.

Deploy End-to-End Deep Learning Algorithms

Use a variety of trained deep learning networks (including ResNet-50, SegNet, and LSTM) from Deep Learning Toolbox™ in your Simulink model and deploy to NVIDIA GPUs. Generate code for preprocessing and postprocessing along with your trained deep learning networks to deploy complete algorithms.

Using ResNet-50 to classify an input image in Simulink.

Log Signals, Tune Parameters, and Numerically Verify Code Behavior

When used with Simulink Coder, GPU Coder enables you to log signals and tune parameters in real time using external mode simulations. Use Embedded Coder with GPU Coder to run software-in-the-loop and processor-in-the-loop tests that numerically verify the generated code matches the behavior of the simulation.

Use External Mode to log signals and tune parameters in Simulink.

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.

Quantizzazione del deep learning

È possibile quantizzare la propria rete di deep learning in INT8 e analizzare il tradeoff sull’accuratezza della quantizzazione di pesi e bias dei layer selezionati utilizzando il pacchetto di supporto Model Quantization Library.

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.

Optimize the Generated Code

GPU Coder automatically optimizes the generated code. Use design patterns to further increase performance.

Minimize CPU-GPU Memory Transfers and Optimize Memory Usage

GPU Coder automatically analyzes, identifies, and partitions segments of MATLAB code to run on either the CPU or GPU. It also minimizes the number of data copies between CPU and GPU. Use profiling tools to identify other potential bottlenecks.

Profile reports identifying potential bottlenecks.

Invoke Optimized Libraries

Code generated with GPU Coder calls optimized NVIDIA CUDA libraries, including TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS, and Thrust. Code generated from MATLAB toolbox functions are mapped to optimized libraries whenever possible.

Generated code calling functions in the optimized cuFFT CUDA library.

Use Design Patterns for Further Acceleration

Design patterns such as stencil processing use shared memory to improve memory bandwidth. They are applied automatically when using certain functions such as convolution. You can also manually invoke them using specific pragmas.

The stencil processing design pattern.

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.

Accelerate Simulink Simulations Using NVIDIA GPUs

When used with Simulink Coder, GPU Coder accelerates compute-intensive portions of MATLAB Function blocks in your Simulink models on NVIDIA GPUs.

Ultime Novità

Simulink Support

Generate, build, and deploy Simulink models to NVIDIA GPUs

Deep Learning Simulink Support

Generate, build, and deploy deep learning networks in Simulink models to NVIDIA GPUs

Persistent Variables

Create persistent memory on the GPU

Wavelet Toolbox Code Generation

Generate code for FFT-based FIR filtering and Short-time Fourier transform using dwt, dwt2, modwt, and modwtmra

Deep Learning

Generate code for custom layers

Multi-Input Networks

Generate code for networks that have multiple inputs

Long Short-Term Memory (LSTM) Networks

Generate code for convolutional LSTM and network activations

IO Block Library for NVIDIA Hardware

Access NVIDIA hardware peripherals using GPU Coder Support Package for NVIDIA GPUs

See the release notes for details on any of these features and corresponding functions.