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:
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.
Casos de éxito de MATLAB Coder
Descubra cómo ingenieros y científicos de diversos sectores utilizan MATLAB Coder para generar código C/C++ para sus aplicaciones.
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.
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.
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.
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++.
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.
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.
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.
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.
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.
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.
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.