MATLAB Coder

Generación de código C y C++ a partir de código de MATLAB

 

MATLAB Coder™ genera código C y C++ a partir de código de MATLAB® para diversas plataformas de hardware, desde sistemas de escritorio a hardware embebido. Ofrece soporte para la mayor parte del lenguaje MATLAB y una amplia gama de toolboxes. Puede integrar el código generado se puede integrar en sus proyectos como código fuente, librerías estáticas o librerías dinámicas. El código generado es legible y portátil. Puede combinarlo con librerías y partes clave de su código C y C++ existente. También se puede empaquetar el código generado como una función MEX para usarlo en MATLAB.

Cuando se utiliza con Embedded Coder®, MATLAB Coder proporciona personalizaciones de código, optimizaciones específicas de la plataforma, trazabilidad de código, así como verificación de software-in-the-loop (SIL) y de processor-in-the-loop (PIL).

Para desplegar programas de MATLAB como aplicaciones independientes, utilice MATLAB Compiler™. Para generar componentes de software e integrarlos con otros lenguajes de programación, utilice MATLAB Compiler SDK™.

Cómo empezar:

Ejecución en cualquier parte

Genere código fuente ANSI-C/C++ legible y portátil. Despliegue código de forma gratuita.

Despliegue de algoritmos de forma gratuita

Utilice cualquier compilador de C/C++ para compilar y ejecutar código generado en cualquier hardware, desde sistemas de escritorio a dispositivos móviles y hardware embebido. El código generado es gratuito, de modo que puede desplegarlo en aplicaciones comerciales para sus clientes sin coste.

Código generado para multiplicación de matrices.

Toolboxes y funciones soportadas

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

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

Despliegue de código C++ desde MATLAB

Integre el código generado con el código fuente C++ orientado a objetos.

Generación de código C++ con espacios de nombres

MATLAB Coder puede generar código C++ en un espacio de nombres, lo que facilita la integración con otro código fuente que podría tener nombres de funciones o tipos de datos idénticos. El generador de código empaqueta en el espacio de nombres todas las funciones y las definiciones de tipos generadas.

Código generado que integra variables con nombres de tipos de datos idénticos utilizando espacios de nombres.

Generación de clases de C++ a partir de clases de MATLAB

MATLAB Coder produce clases de C++ a partir de clases de su código de MATLAB, incluidas clases de valores, clases de identificadores y System objects. El código generado se puede compilar en ejecutables o librerías C++ y se puede integrar en el código fuente C++ existente.

Código C++ generado con una interfaz de clases.

Uso de arrays de C++ asignados dinámicamente en las interfaces de función generadas

Genere código C++ para las funciones de MATLAB que acepten o devuelvan un array con un tamaño desconocido en el momento de la compilación o cuyo límite supere un umbral predefinido. En el código generado, la memoria para el array se asigna dinámicamente y se implementa como una plantilla de clase llamada coder::array. Además de la desasignación de memoria segura para excepciones, coder::array proporciona diversas API para acceder y administrar el array dinámico.

Paso de arrays asignados dinámicamente a las funciones generadas.

Despliegue de redes de deep learning

Genere código a partir de redes de deep learning entrenadas.

Despliegue de algoritmos de deep learning de principio a fin

Despliegue diversas redes de deep learning entrenadas, tales como ResNet-50 y MobileNet-v2, así como LSTM y otras capas, desde Deep Learning Toolbox™ en CPU Intel® y ARM® Cortex®. Genere código para preprocesamiento y posprocesamiento junto con sus redes de deep learning entrenadas para implementar algoritmos completos.

Genere código optimizado para inferencia

Debido a que MATLAB Coder genera solo el código necesario para ejecutar la inferencia con su algoritmo específico, el código es más rápido y utiliza menos memoria que otras soluciones de deep learning. El código generado realiza llamadas a librerías optimizadas, como MKL-DNN para procesadores Intel y ARM Compute Library para procesadores ARM Cortex. Emplee GPU Coder™ para acelerar o desplegar algoritmos mediante la generación de código CUDA® que se ejecuta en cualquier GPU NVIDIA® moderna.

Prototipado en hardware

Acelere la implementación en hardware con la conversión automática de su algoritmo a C/C++.

Prototipado en plataformas de escritorio y en la nube

Use la app de MATLAB Coder o las funciones en línea de comandos equivalentes a fin de generar rápidamente código para sus aplicaciones de procesamiento de señales, visión artificial, deep learning, sistemas de control, entre otras, y, a continuación, compile el código para su hardware.

Prototipado rápido de algoritmos en plataformas de escritorio y en la nube.

Prototipado en plataformas embebidas y móviles

La integración manual del código generado en su aplicación permite usar cualquier dispositivo como plataforma. Automatice el proceso para Raspberry Pi mediante el paquete de soporte de MATLAB para Raspberry Pi.

Prototipado rápido de algoritmos en plataformas embebidas y móviles.

Del prototipado a la producción

Use MATLAB Coder con Embedded Coder para generar código que aprovecha las características intrínsecas del procesador específico para una ejecución más rápida en comparación con el código C/C++ ANSI/ISO estándar.

Tiempo de ejecución del perfil del código autónomo generado.

Integración con software

Reutilice los algoritmos de MATLAB a modo de código C/C++ en su entorno de software.

Generación de código con interfaces simples fáciles de integrar

El código generado utiliza tipos de C/C++ de forma natural, simplificando así la integración con código externo. Puede integrar el código generado como código fuente o como librerías. Los componentes o las librerías C/C++ de confianza se pueden incorporar en MATLAB para realizar pruebas con un nivel más alto de fidelidad y también se pueden invocar de forma automática desde el código generado.

Informe de trazabilidad interactivo mediante el uso de MATLAB Coder con Embedded Coder.

Optimización del rendimiento del código generado

Aplique optimizaciones para ajustar los tradeoffs entre la velocidad de ejecución, el uso de memoria, la legibilidad y la portabilidad. Emplee herramientas de creación de perfiles para identificar cuellos de botella. Para potenciar aún más el rendimiento, genere código OpenMP multinúcleo y llame a librerías optimizadas tales como LAPACK, BLAS y FFTW cuando estén disponibles.

Ejemplo de código generado con llamadas a OpenMP.

Reutilización de pruebas de MATLAB en el código generado antes de la integración

Reutilice las pruebas de MATLAB existentes para verificar el comportamiento del código generado en el entorno interactivo de MATLAB. Emplee el marco de pruebas unitarias de MATLAB para desarrollar con rapidez un amplio conjunto de pruebas de regresión que se pueden usar para verificar el código C/C++ generado.

Verificación del comportamiento del código generado antes de la integración en su aplicación.

Aceleración de algoritmos

Genere código C/C++ y compílelo para usarlo en MATLAB.

Aceleración de algoritmos en las CPU

Es posible llamar al código generado en forma de funciones 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. Se pueden crear perfiles de las funciones MEX generadas para identificar cuellos de botella y focalizar las iniciativas de optimización.

Creación de perfiles de funciones MEX para identificar cuellos de botella en el rendimiento.

Aceleración de algoritmos mediante GPU

Use Parallel Computing Toolbox™ para acelerar algoritmos que se ejecutan en MATLAB. Emplee GPU Coder para generar código CUDA para la aceleración o el despliegue en cualquier GPU NVIDIA moderna.

Funcionalidades más recientes

Código C++

Genere clases de C++ a partir de clases de MATLAB.

Código C++

Use arrays de C++ asignados dinámicamente en las interfaces de función generadas.

Editor de tipos de codificador

Cree y edite tipos de entradas interactivamente.

FFT más rápida

Rendimiento mejorado del código generado para las funciones de transformada rápida de Fourier (FFT).

Fecha/hora y horarios

Generación de código para arrays de fecha/hora y horarios.

Generación de código para Optimization Toolbox

Genere código C para los problemas con restricciones lineales y objetivos cuadráticos mediante quadprog.

Redes de memoria de corto-largo plazo (LSTM)

Genere código para redes recurrentes, como las redes LSTM.

Redes de deep learning

Genere código para DenseNet-201 y Xception.

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

Panel Navigation

El placer de generar código C desde MATLAB

Descubra consejos y prácticas recomendadas para trabajar con MATLAB Coder y lea cómo empresas tales como Delphi, Baker Hughes, iSonea y dorsaVi implementaron aplicaciones de código generado con éxito.