Matlab编码器

从MATLAB代码生成C和c++代码

Matlab Coder™从Matlab生成C和C ++代码®从桌面系统到嵌入式硬件的各种硬件平台的代码。它支持万博1manbetx大多数MATLAB语言和各种工具箱。您可以将生成的代码集成到项目中作为源代码,静态库或动态库。生成的代码是可读且便携的。您可以将其与现有C和C ++代码和库的关键部分结合起来。您还可以将生成的代码包装为MEX函数以用于MATLAB。

与嵌入式编码器一起使用时®,Matlab编码器提供代码自定义,目标特定的优化,代码可追溯性和软件循环(SIL)和处理器in-Loop(PIL)验证。

要将MATLAB程序部署为独立应用程序,请使用MATLAB Compiler™。要生成与其他编程语言集成的软件组件,请使用MATLAB Compiler SDK™。

开始:

跑到任何地方

生成可读和可移植的ANSI C/ c++源代码。免版税的部署代码。

部署算法免版税

使用任何C / C ++编译器在任何硬件上编译并运行生成的代码,从桌面系统到移动设备到嵌入式硬件。生成的代码无需在商业应用程序中为您的客户提供免版税部署。

为矩阵乘法生成的代码。

万博1manbetx支持的工具箱和功能

MATLAB编码器从广泛的MATLAB语言特性生成代码,设计工程师使用这些特性开发算法作为更大系统的组件。这包括超过2500个操作员和功能从MATLAB和配套工具箱。

MATLAB语言和工具箱支持代码生成。万博1manbetx

从MATLAB部署C ++代码

与面向对象的C ++源代码集成生成的代码。

使用命名空间生成C ++代码

MATLAB编码器可以在命名空间中生成C ++代码,使得简单地与可能具有相同功能或数据类型名称的其他源代码集成。代码生成器将所有生成的函数包装到命名空间中。

生成的代码与使用名称空间集成具有相同数据类型名称的变量。

从Matlab类生成C ++类

MATLAB编码器从MATLAB代码中的类生成C ++类,包括值类,处理类和系统对象。生成的代码可以编译为C ++库或可执行文件,可以集成到您现有的C ++源代码中。

使用类接口生成的C ++代码。

在生成的函数接口中使用动态分配的C ++数组

为MATLAB函数生成C ++代码,该函数接受或返回一个数组,其中包含数组大小未知在编译时,或者绑定超过预定义阈值。在生成的代码中,将数组的内存动态分配和实现为名为的类模板编码器:数组。除了例外 - 安全的内存释放,编码器:数组提供访问和管理动态数组的api。

将动态分配的数组传递给生成的函数。

部署深度学习网络和机器学习模型

从培训的深度学习网络和机器学习模型生成代码。

部署端到端深度学习算法

部署各种训练有素的深度学习网络,如ResNet-50和MobileNet-v2,以及从深度学习工具箱™到英特尔的LSTM和其他层®和手臂®皮质®CPU。生成用于预处理和后期后处理的代码以及您培训的深度学习网络以部署完整的算法。

生成深度学习推论的优化代码

由于Matlab编码器仅生成运行特定算法所需的代码,因为代码更快,并且使用比其他深度学习解决方案更少的内存。万博 尤文图斯生成的代码调用优化库,包括用于英特尔处理器的英特尔MKL-DNN,以及用于ARM Cortex处理器的ARM计算库。使用GPU编码器™通过生成CUDA来加速或部署算法®可以在任何现代NVIDIA上运行的代码®GPU。

部署端到端机器学习模型

通过为整个机器学习算法生成C / C ++代码部署统计和机器学习模型,包括预处理和后处理。更新已部署模型的参数,无需重新生成C / C ++预测代码。

机器学习模型的代码生成工作流。

硬件原型

快速达到硬件,通过将算法自动转换为C / C ++。

桌面和云平台上的原型

使用MATLAB Coder应用程序或等效的命令行函数来快速生成信号处理、计算机视觉、深度学习、控制系统或其他应用程序的代码,然后为您的硬件编译代码。

在桌面和云平台上快速构建算法原型。

基于嵌入式和移动平台的原型

通过手动将生成的代码与应用程序手动集成任何设备来定位任何设备。使用MATLAB支持包进行覆盆子PI自动化Raspberry PI的过程。万博1manbetx

在嵌入式和移动平台上快速原型化算法。

从原型制作转向生产

使用MATLAB Coder与Embedded Coder生成代码,利用处理器特定的内在特性,可以比标准的ANSI/ISO C/ c++代码执行得更快。

分析生成的独立代码的执行时间。

与软件集成

在软件环境中重用MATLAB算法为C/ c++代码。

使用易于集成的简单接口生成代码

生成的代码以自然的方式使用C/ c++类型,简化了与外部代码的集成。您可以将生成的代码集成为源代码或库。可信任的C/ c++库或组件可以引入MATLAB进行更高保真度的测试,也可以从生成的代码中自动调用。

使用MATLAB编码器具有嵌入式编码器的交互式可追溯性报告。

优化生成代码的性能

应用优化以调整执行速度,内存使用率,可读性和可移植性之间的权衡。使用分析工具来识别瓶颈。为了进一步提升性能,可以在可用时生成多核OpenMP代码并调用优化的库,如Lapack,Blas和FFTW。

使用调用OpenMP的生成代码示例。

在集成之前重用MATLAB测试在生成的代码上

重用现有的MATLAB测试以验证交互式MATLAB环境中生成的代码的行为。使用MATLAB单元测试框架快速开发丰富的回归测试集,可用于验证生成的C / C ++代码。

在与应用程序集成之前验证生成代码的行为。

加速算法

生成C / C ++代码并将其编译用于MATLAB内部。

cpu加速算法

您可以将生成的代码作为MEX函数从MATLAB代码中调用,以加快执行速度,不过性能将根据您的MATLAB代码的性质而有所不同。您可以分析生成的MEX函数,以确定瓶颈并集中精力进行优化。

配置文件MEX函数以识别性能的瓶颈。

使用GPU加速算法

使用并行计算工具箱™加速在MATLAB中运行的算法。使用GPU编码器为在任何现代NVIDIA GPU上运行的加速或部署生成CUDA代码。

最新的特性

C ++代码生成

改进的标识符命名,更多的命名空间使用,以及更多自然文件布局

数据类型支持万博1manbetx

扩展的代码生成日期时间,持续时间,表格,时间表和分类阵列

特征值和特征向量

扩展的代码生成支持eig函数万博1manbetx

功能内联的全局设置

优化代码的可读性和生成速度

局部变量声明

局部变量声明的更清晰的排序模式

自定义深度学习层

为英特尔和ARM CPU生成自定义图层的代码

长短期内存(LSTM)网络

为Intel cpu生成LSTM、有状态LSTM和双向LSTM的代码

英特尔Mac的深度学习

从运行在macOS的Intel cpu上的深度学习网络生成代码

发行说明有关这些功能的详细信息和相应的功能。

面板导航

从Matlab生成C代码的快乐

学习与Matlab编码器一起使用的提示和最佳实践,并通过Delphi,Baker Hughes,Isonea和Dorsavi等公司读取生成的代码的成功应用。