GPU Coder

Genere código CUDA para GPU NVIDIA

GPU Coder™ genera código CUDA® optimizado a partir de código MATLAB® para deep learning, visión embebida y sistemas autónomos. El código generado realiza llamadas a librerías NVIDIA CUDA optimizadas, tales como cuDNN, cuSolver y cuBLAS. Se puede integrar en su proyecto en forma de código fuente, librerías estáticas o librerías dinámicas, y se puede utilizar para prototipado en GPU tales como NVIDIA Tesla® y NVIDIA Tegra®. Puede usar el código CUDA generado en MATLAB para acelerar secciones intensivas desde el punto de vista computacional de su código de MATLAB. GPU Coder le permite incorporar código CUDA heredado en sus algoritmos de MATLAB y en el código generado.

Cuando se utiliza con Embedded Coder®, GPU Coder le permite verificar el comportamiento numérico del código generado mediante pruebas de tipo software-in-the-loop (SIL).

Comience:

Genere código CUDA rápido y flexible

Genere código CUDA optimizado. Implemente código libre de royalties.

Implemente algoritmos libres de royalties

Compile y ejecute el código generado en GPUs NVIDIA de uso habitual, desde sistemas de escritorio a centros de datos o hardware embebido. El código generado está libre de royalties, de modo que puede implementarlo en aplicaciones comerciales para sus clientes sin coste.

Explore la galería (2 imágenes)

Casos de éxito de GPU Coder

Descubra cómo los ingenieros y científicos de diversos sectores utilizan GPU Coder para generar código CUDA para sus aplicaciones.

Detección automatizada de defectos en prototipos de Airbus con NVIDIA Jetson TX2.

Genere código desde toolboxes y funciones soportadas

GPU Coder genera código a partir de una extensa gama de funcionalidades del lenguaje MATLAB que los ingenieros de diseño utilizan para desarrollar algoritmos como componentes de sistemas más amplios. Esto incluye más de 390 operadores y funciones de MATLAB y las toolboxes complementarias.

Soporte del lenguaje MATLAB y las toolboxes para la generación de código.

Incorpore código heredado

Utilice las capacidades de integración de código heredado para incorporar código CUDA de confianza o altamente optimizado en sus algoritmos de MATLAB para pruebas en MATLAB y, a continuación, realice una llamada al mismo código CUDA también desde el código generado.

Incorporación de código CUDA existente en el código generado.

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.

Genere código CUDA desde redes de deep learning

Implemente redes de deep learning entrenadas con Deep Learning Toolbox.

Implemente algoritmos de deep learning de principio a fin

Implemente diversas redes de deep learning entrenadas, tales como ResNet-50 y SegNet, desde Deep Learning Toolbox™ en GPU NVIDIA. Genere código para preprocesamiento y posprocesamiento junto con sus redes de deep learning entrenadas para implementar algoritmos completos.

Implemente SegNet y otras redes de deep learning entrenadas.

Genere código optimizado para inferencia

GPU Coder genera código menos extenso en comparación con otras soluciones de deep learning, ya que solo genera el código que hace falta para ejecutar la inferencia con un algoritmo concreto. El código generado realiza llamadas a librerías optimizadas, tales como TensorRT™ y cuDNN

Inferencia de una sola imagen con VGG-16 en una GPU Titan V utilizando cuDNN.

Consiga una mayor optimización mediante TensorRT

Genere código que se integra con NVIDIA TensorRT, un runtime y optimizador de inferencia de deep learning de alto rendimiento. Utilice tipos de datos INT8 o FP16 para conseguir mejoras de rendimiento adicionales respecto del tipo de datos FP32 estándar.

Mejora de la velocidad de ejecución con TensorRT y tipos de datos INT8.

Cuantización de deep learning

Cuantice su red de deep learning para INT8 y analice el tradeoff con respecto a la precisión de cuantizar los pesos y sesgos de las capas seleccionadas utilizando el paquete de soporte de Model Quantization Library.

Prototipe en hardware

Acelere la implementación en hardware mediante la conversión automática de su algoritmo a código CUDA.

Prototipe en las plataformas NVIDIA Jetson y DRIVE

Automatice la compilación y la implementación del código generado en las plataformas NVIDIA Jetson™ y DRIVE™ mediante el paquete de soporte de GPU Coder™ para GPU NVIDIA®.

Prototipado en la plataforma NVIDIA Jetson.

Acceda a periféricos y sensores desde MATLAB y el código generado

Comuníquese de manera remota con la plataforma NVIDIA desde MATLAB para adquirir datos procedentes de webcams y otros periféricos soportados y prototipar con más rapidez. Cree e implemente su algoritmo junto con el código de la interfaz del periférico en la placa para permitir una ejecución autónoma.

Acceda a periféricos y sensores desde MATLAB y el código generado.

Pase del prototipado a la producción

Utilice GPU Coder con Embedded Coder® para trazar de manera interactiva su código MATLAB cotejándolo con el código CUDA generado. Verifique el comportamiento numérico del código generado que se ejecuta en el hardware mediante pruebas de tipo software-in-the-loop (SIL) y processor-in-the-loop (PIL).

Informe de trazabilidad interactivo utilizando 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.

Acelere los algoritmos

Genere código CUDA y compílelo para su uso en MATLAB.

Acelere los algoritmos mediante GPU

Realice llamadas al código CUDA generado en forma de una función MEX desde el código MATLAB para acelerar la ejecución, aunque el rendimiento variará en función de la naturaleza del código MATLAB. Cree perfiles de las funciones MEX generadas para identificar cuellos de botella y enfocar sus esfuerzos en pos de la optimización.

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.

Nuevas funciones

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.