GPU Coder

 

GPU Coder

Genere código CUDA para GPU NVIDIA

Más información:

Generación de código CUDA rápido y flexible

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

Despliegue de algoritmos libres de royalties

Compile y ejecute el código generado en GPU 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 desplegarlo en aplicaciones comerciales para sus clientes sin coste.

Explore la galería (2 imágenes)

Airbus prototipa la detección automática de defectos en NVIDIA Jetson TX2.

Generación de código desde funciones y toolboxes 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 cientos de operadores y funciones de MATLAB y de las toolboxes complementarias.

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

Incorporación de código heredado

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

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

Generación de código CUDA a partir de modelos de Simulink

Cree modelos en Simulink y genere código CUDA optimizado.

Ejecución de simulaciones y generación de código optimizado para GPU NVIDIA

Cuando se utiliza con Simulink Coder™, GPU Coder acelera partes de bloques MATLAB Function con una alta carga computacional en sus modelos de Simulink en GPU NVIDIA. A continuación, puede generar código CUDA optimizado desde el modelo de Simulink y desplegarlo en su plataforma GPU NVIDIA.

Modelo de Simulink de un detector de bordes Sobel que se ejecuta en una GPU.

Despliegue de algoritmos de deep learning de extremo a extremo

Utilice diversas redes de deep learning entrenadas (incluidas ResNet-50, SegNet y LSTM) desde Deep Learning Toolbox™ en su modelo de Simulink y realice el despliegue en GPU NVIDIA. Genere código para preprocesamiento y posprocesamiento junto con sus redes de deep learning entrenadas para desplegar algoritmos completos.

Registro de señales, ajuste de parámetros y verificación numérica del comportamiento del código

Cuando se utiliza con Simulink Coder, GPU Coder permite registrar señales y ajustar parámetros en tiempo real usando simulaciones en modo externo. Utilice Embedded Coder con GPU Coder para ejecutar pruebas software-in-the-loop y processor-in-the-loop que verifican numéricamente que el código generado coincide con el comportamiento de la simulación.

Generación de código CUDA desde redes de deep learning

Despliegue redes de deep learning entrenadas con Deep Learning Toolbox.

Despliegue de algoritmos de deep learning de extremo a extremo

Despliegue diversas redes de deep learning entrenadas (incluidas ResNet-50, SegNet y LSTM) desde Deep Learning Toolbox en GPU NVIDIA. Utilice capas de deep learning predefinidas o defina capas personalizadas para su aplicación específica. Genere código para preprocesamiento y posprocesamiento junto con sus redes de deep learning entrenadas para desplegar algoritmos completos.

Generación de 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 necesario para ejecutar la inferencia con un algoritmo concreto. El código generado realiza llamadas a librerías optimizadas, incluidas TensorRT y cuDNN.

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

Mayor optimización mediante TensorRT

Genere código que se integra con NVIDIA TensorRT, un tiempo de ejecución y un 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 reducir el uso de memoria y aumentar el rendimiento de inferencia. Analice y visualice el tradeoff entre un mayor rendimiento y la precisión de inferencia con la app Deep Network Quantizer.

Optimización del código generado

GPU Coder optimiza automáticamente el código generado. Utilice patrones de diseño para aumentar aún más el rendimiento.

Minimización de las transferencias de memoria CPU-GPU y optimización del uso de memoria

GPU Coder analiza, identifica y divide automáticamente los segmentos del código de MATLAB para su ejecución en la CPU o en la GPU. Además, minimiza el número de copias de datos entre la CPU y la GPU. Utilice herramientas de análisis de rendimiento para identificar otros posibles cuellos de botella.

Informes de rendimiento que identifican posibles cuellos de botella.

Invocación de librerías optimizadas

El código generado con GPU Coder realiza llamadas a librerías NVIDIA CUDA optimizadas, tales como TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS y Thrust. El código generado desde las funciones de las toolboxes de MATLAB se asigna a librerías optimizadas siempre que es posible.

Funciones de llamada de código generadas en la librería CUDA cuFFT optimizada.

Uso de patrones de diseño para aumentar la aceleración

Los patrones de diseño, tales como el procesamiento de plantillas, utilizan la memoria compartida para aumentar el ancho de banda de memoria. Se aplican automáticamente cuando se emplean ciertas funciones, tales como la convolución. Además, puede invocarlos manualmente mediante pragmas específicas.

Patrón de diseño de procesamiento de plantillas.

Prototipado en hardware

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

Prototipado en las plataformas NVIDIA Jetson y NVIDIA DRIVE

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

Prototipado en la plataforma NVIDIA Jetson.

Acceso 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. Despliegue su algoritmo junto con el código de la interfaz del periférico en la placa para permitir la ejecución autónoma.

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

Del prototipado a la producción

Utilice GPU Coder con Embedded Coder para trazar de manera interactiva su código de 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 software-in-the-loop (SIL) y processor-in-the-loop (PIL).

Informe de trazabilidad interactivo utilizando GPU Coder con Embedded Coder.

Aceleración de algoritmos

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

Aceleración de algoritmos con GPU en MATLAB

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

Aceleración de las simulaciones de Simulink con GPU NVIDIA

Cuando se utiliza con Simulink Coder, GPU Coder acelera partes de bloques MATLAB Function con una alta carga computacional en sus modelos de Simulink en las GPU NVIDIA.