MATLAB编码器

MATLAB编码器

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

开始:

到处运行

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

部署算法免版税

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

生成矩阵乘法代码。

生成矩阵乘法代码。

dorsaVi使用MATLAB Coder开发了用于医疗、体育和职业安全应用的运动分析算法。

Delphi开发了汽车主动安全系统雷达传感器对准算法。

支持的工具箱和函数

MATLAB Coder从广泛的MATLAB语言特性中生成代码,设计工程师使用这些特性开发算法作为大型系统的组件。这包括来自MATLAB和配套工具箱的2500多个运算符和函数。

从MATLAB中部署c++代码

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

生成带有名称空间的c++代码

MATLAB Coder可以在命名空间中生成c++代码,使其易于与具有相同函数或数据类型名称的其他源代码集成。代码生成器将所有生成的函数和类型定义打包到命名空间中。

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

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

从MATLAB类生成c++类

MATLAB Coder从MATLAB代码中的类生成c++类,包括值类、句柄类和系统对象。生成的代码可以编译成c++库或可执行程序,也可以集成到现有的c++源代码中。

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

为MATLAB函数生成c++代码,这些函数接受或返回数组大小在编译时未知的数组,或其边界超过预定义的阈值。在生成的代码中,动态分配数组的内存,并将其实现为一个名为编码器:数组.除了异常安全的内存回收,编码器:数组提供访问和管理动态数组的api。

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

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

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

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

部署端到端深度学习算法

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

为深度学习推理生成优化代码

因为MATLAB Coder只生成使用特定算法运行推理所需的代码,所以该代码比其他深度学习解决方案更快,使用的内存更少。生成的代码调用优化库,包括用于英特尔处理器的英特尔MKL-DNN和用于ARM Cortex处理器的ARM计算库。使用GPU Coder™通过生成CUDA来加速或部署算法®可以在任何现代NVIDIA上运行的代码®GPU。

部署端到端机器学习模型

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

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

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

原型硬件

通过自动将算法转换为C/ c++,快速实现硬件。

桌面和云平台的原型

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

嵌入式和移动平台上的原型

通过手动将生成的代码集成到应用程序中,以任何设备为目标。使用树莓派的MATLAB支持包实现树莓派的自动化过程。

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

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

从原型开发转移到生产

使用MATLAB Coder和嵌入式Coder来生成代码,利用特定于处理器的intrinsic,可以比标准的ANSI/ISO C/ c++代码执行得更快。

生成的独立代码的概要文件执行时间。

生成的独立代码的概要文件执行时间。

集成软件

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

生成具有易于集成的简单接口的代码

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

交互式跟踪报告使用MATLAB编码器与嵌入式编码器。

交互式跟踪报告使用MATLAB编码器与嵌入式编码器。

优化生成代码的性能

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

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

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

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

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

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

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

加速算法

生成C/ c++代码并编译它以在MATLAB中使用。

cpu上的加速算法

您可以从您的MATLAB代码中调用生成的代码作为MEX函数,以加快执行速度,尽管性能将取决于您的MATLAB代码的性质。您可以分析生成的MEX函数,以识别瓶颈并集中精力进行优化。

对MEX功能进行分析,以确定性能瓶颈。

对MEX功能进行分析,以确定性能瓶颈。

使用gpu加速算法

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

Baidu
map