MATLAB编码器

MATLABコードからのCコードとc++コードの生成

MATLAB编码器™は,デスクトップシステムから組み込みハードウェアまで,さまざまなハードウェアプラットフォームに対応したCコードとc++コードをMATLAB®コードから生成します。また,MATLAB言語の大部分とさまざまなツールボックスをサポートしています。生成されたコードをソースコード,スタティックライブラリまたはダイナミックライブラリとしてプロジェクトに統合できます。生成コードは可読性および移植性が良好です。既存のCコードやライブラリと統合して,アルゴリズムの重要な部分で非常に高い効率を実現したり,信頼性の高いコードを再利用したりすることができます。また,検証または高速化のためMATLAB環境で使用できるように,生成したコードを墨西哥人関数としてパッケージ化することも可能です。

嵌入式编码器®は,量産向けコード生成のため,MATLAB编码器にコードカスタマイズ,ターゲット固有の最適化,コードトレーサビリティ,ソフトウェアインザループ(SIL)とプロセッサインザループ(公益诉讼)の検証サポートを追加して拡張します。

ユーザーインターフェイスを含む完全なアプリケーションの配布には,MATLAB编译器SDK™を使用します。

詳細を見る:

多種多様な実行環境

可読性と移植性に優れたANSI Cソースコードを生成します。コード配布は無償です。

アルゴリズムの配布が無償

任意のCコンパイラを使用して,生成したコードをコンパイルし,デスクトップシステムからモバイルデバイス,組み込みハードウェアまであらゆるハードウェアで実行できます。生成したコードはロイヤリティフリーなので,商用アプリケーションで顧客に無料配布しすることができます。

行列乗算用に生成されたコード

dorsaVi社の医療/スポーツ用モーション解析アルゴリズム

サポートされているツールボックスと関数

MATLAB言語の幅広い機能を使用してMATLAB编码器で生成されるコードにより,設計エンジニアは大規模システムのコンポーネントとして使用するアルゴリズムを開発することができます.MATLABおよび関連ツールボックスから1900以上の演算子と関数を利用できます。

コード生成のためのMATLAB言語とツールボックスのサポート

ハードウェアでのプロトタイピング

アルゴリズムをCに自動変換することでハードウェア開発期間を短縮します。

デスクトップおよびクラウドプラットフォームでのプロトタイピング

MATLAB编码器アプリまたは同等のコマンドライン関数を使用すると,簡単にコードを生成し,使用するハードウェア用にコンパイルできます。信号処理,コンピュータービジョン,ディープラーニング,制御システムをはじめ,幅広いアプリケーションに対応します。

デスクトップおよびクラウドプラットフォームでアルゴリズムを簡単にプロトタイピング

組み込みおよびモバイルプラットフォームでのプロトタイピング

生成したコードとアプリケーションを手動で統合すれば,すべてのデバイスをターゲットにできます.Raspberryπ用のMATLABサポートパッケージを使用すれば,覆盆子π™のプロセスを自動化できます。

組み込みおよびモバイルプラットフォームでアルゴリズムを簡単にプロトタイピング

プロトタイピングから量産への移行

MATLAB编码器と嵌入式编码器®を併用すると,標準的なANSI / ISO C / c++コードよりも実行速度に優れた,プロセッサ固有の機能を利用したコードも生成できます。

生成したスタンドアロンコードの実行時間のプロファイリング

ソフトウェアとの統合

ソフトウェア環境内でMATLABアルゴリズムをCコードとして再利用します。

簡単に統合できるシンプルなインターフェイスでコードを生成

生成されるコードは自動的にC型を使用するため,外部コードとの統合が容易です。生成したコードをソースコードやライブラリとして統合することができます。信頼できるCライブラリやコンポーネントをMATLABに統合すれば,より忠実度の高いテストを実施できるようになるだけでなく,生成したコードから自動的に呼び出すことも可能です。

MATLAB编码器と嵌入式编码器を併用する対話型のトレーサビリティレポート

生成されたコードのパフォーマンスの最適化

最適化を適用することで,実行速度,メモリ使用的量,可読性,移植性のトレードオフを調整できます。ボトルネックの特定にはプロファイリングツールを使用します。パフォーマンスをさらに高めるには,マルチコア対応のOpenMPコードを生成し,LAPACK, bla, FFTWなどの最適化済みライブラリを呼び出します。

OpenMPを呼び出す生成コードの例

統合の前に生成したコードでMATLABテストを再利用

対話型のMATLAB環境で,既存のMATLABテストを再利用して生成コードの動作を検証します.MATLABユニットテストフレームワークを使用すると,生成したCコードの検証に使用できる多種多様な回帰テストを簡単に開発できます。

アプリケーションに統合する前に生成したコードの動作を検証

アルゴリズムの高速化

Cコードを生成し,MATLAB内で使用できるようにコンパイルします。

CPUでのアルゴリズムの高速化

生成したコードを墨西哥人関数としてMATLABコードから呼び出すと実行速度が向上しますが,実際のパフォーマンスはMATLABコードの性質によって異なります。生成した墨西哥人関数をプロファイリングし,ボトルネックを特定して最適化の対象を絞り込むことができます。

パフォーマンスのボトルネックを特定するための墨西哥人関数のプロファイリング

GPUを使用したアルゴリズムの高速化

并行计算工具箱™を使用すると,MATLABでのアルゴリズムの実行を高速化できます。最新のNVIDIA®GPUでの高速化や配布に対応したCUDAコードを生成するにはGPU编码器™を使用します。

从原型转向生产

使用MATLAB编码器和嵌入式编码器来生成代码,利用处理器特有的内部特性,可以比标准的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编码器生成CUDA代码的加速或部署,运行在任何现代的NVIDIA GPU。

MATLABからCコードを簡単に生成するには

MATLAB编码器の使用に関するヒントとベストプラクティスをご紹介します叠慧,贝克休斯,iSonea, dorsaViなど,各社の生成コードの事例もご覧いただけます。