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

Más información:

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.

Despliegue de código C++ a partir de 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.

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 y modelos de machine learning

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

Despliegue de algoritmos de deep learning de extremo a extremo

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.

Generación de código optimizado para inferencia de deep learning

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.

Despliegue de modelos de machine learning de extremo a extremo

Despliegue modelos de machine learning y estadística generando código C/C++ para todo el algoritmo de machine learning, incluido su preprocesamiento y posprocesamiento. Actualice los parámetros de los modelos desplegados sin necesidad de volver a generar el código de predicción C/C++.

Flujo de trabajo de generación de código para modelos de machine learning.

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

Perfil de tiempo de ejecución 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 y 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 su 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 de MATLAB para acelerar la ejecución, aunque el rendimiento variará en función de la naturaleza del código de MATLAB. Se pueden crear perfiles de las funciones MEX generadas para identificar cuellos de botella y concentrarse en la 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.