MATLAB實現整合系列:框架介紹

Fred Liu
Jun 29, 2023

--

在MATLAB中要實現整合與部屬的整體框架中,大概會有下圖的幾種情境與整合方式,主要我們可以分成兩大塊來看。

  1. MATLAB Compiler & Compiler SDK
  2. MATLAB Coder

1.MATLAB Compiler & Compiler SDK:

我們可以將MATLAB Code的程式碼轉成.exe執行檔與幾種語言的DLL與Package,但這樣的情境必須在Enterprise Systems中才有辦法運行,主要是會需要使用MATLAB的Runtime來做執行。

目前Runtime支援的環境有以下Windows, Linux, Mac,詳細Runtime在各個MATLAB版本與對應OS的支援狀況請看以下連結:

MALTAB Runtime

另外在Compiler與CompilerSDK中的詳細介紹與設定,會在之後的篇章中跟大家再做深入的介紹,初步的內容可以參考以下

MATLAB Compiler 官網連結
MATLAB Compiler Documentation

MATLAB Compiler SDK 官網連結
MATLAB Compiler SDK Documentation

2. MATLAB Coder:

使用Coder的情境大概會是以下兩種:

  1. 需要將MATLAB Code轉成其他語言,放在別的硬體上運行,因此就無法使用上述有MATLAB Runtime的方式進行,就一定要使用Coder來轉Code。
  2. 需要將MATLAB Code轉乘其他語言來做加速,或者是在原生語言上做整合與Lib的使用等,例如會有需要C++ Source的需求等。

所以在這邊幾個情境我們會對應到的幾種Coder

C/C++ > MATLAB Coder

CUDA > GPU Coder

HDL > HDL Coder

PLC > Simulink PLC Coder

以上就是針對於轉Code需求相關係的Coder,相關連結列在下方:

MATLAB Coder官網連結
MATLAB Coder Documentation

GPU Coder官網連結
GPU Coder Documentation

HDL Coder官網連結
HDL Coder Documentation

Simulink PLC Coder官網連結
Simulink PLC Coder Documentation

那在Coder中還有一個比較特別一點的使用用途,就是利用Coder將Deep Learning的模型從MATLAB轉成C/C++、CUDA、RTL等。

那我們就要額外參考以下這張圖了,因為對應在深度學習框架中,針對於不同的硬體環境會有不同的Library來做使用,相對起來也會比較複雜一些。

但還好MATLAB現在針對於整體的環境建立流程蠻容易的,這在後續的文章中也會跟大家介紹各個Coder的詳細流程(都做好筆記啦,只差打成文章了)。

那如果我有一些其他框架或是不同語言的深度學習模型,是否就可以透過此框架進行部屬呢?答案是可以的,就可以參考以下的圖:

目前MATLAB可以吃一些框架的深度學習模型,TensorFlow、Pytorch、Caffe、ONNX,或是直接吃TensorFlow Lite來進行部屬,這部分的內容有一些可以先參考上一篇文章:

實現整合系列第一期:MATLAB中寫Python,與TensorFlow,PyTorch整合

那剩下的一些其他操作,也會在後續文章在做介紹。

--

--