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)

GPU Coder Success Stories

Learn how engineers and scientists in a variety of industries use GPU Coder to generate CUDA code for their applications.

Airbus prototypes automated detection of defects on 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.

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.

Optimice el código generado

Saque partido de las optimizaciones que se aplican automáticamente al código generado por GPU Coder. Utilice patrones de diseño para incrementar aún más el rendimiento.

Minimice las transferencias de memoria entre la CPU y la GPU y optimice el uso de memoria

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

Informes de perfiles que identifican posibles cuellos de botella.

Invoque 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 sea posible.

Llamada de funciones por parte del código generado en la librería cuFFT CUDA optimizada.

Utilice patrones de diseño para conseguir una aceleración aún mayor

Los patrones de diseño tales como el procesamiento de plantillas utilizan la memoria compartida para mejorar 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.

El patrón de diseño de procesamiento de plantillas.

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.

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.

Funcionalidades más recientes

Redes de memoria de corto-largo plazo (LSTM)

generación de código para redes recurrentes, como las redes LSTM.

Orientación a deep learning

implementación de redes de deep learning en procesadores GPU de Arm Mali.

Redes de deep learning

generación de código para DeepLab-v3+, MobileNet-v2, Xception y DenseNet-201.

Detector de objetos YOLO v2

generación de código a partir de detectores de objetos YOLO V2 para plataformas cuDNN y TensorRT.

Paralelismo dinámico

ejecución de kernels a partir de subprocesos que se ejecutan en el dispositivo GPU.

Operaciones de reducción 1D en la GPU.

Pruebas processor-in-the-loop (PIL)

verificación del comportamiento numérico del código CUDA generado en GPU de NVIDIA.

Soporte de hardware de NVIDIA

acceso a módulos de cámara incorporada y generación de código CUDA para la función VideoReader.

Consulte las notas de la versión para obtener detalles sobre estas características y las funciones correspondientes.

Consiga una prueba gratuita

30 días de exploración a su alcance.

Descargar ahora

¿Listo para comprar?

Solicitar precio y explore los productos relacionados.

¿Es estudiante?

Obtenga el software para estudiantes de MATLAB y Simulink.

Más información