作者:Jack OmniXRI, 2026/02/06
參考資料來源:
https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/blob/main/SUPPORTED_OPS.md
Arm 為了讓 Cortex-M55/M85/M82 單晶片(MCU)更適用於 AI 推論應用,通常會搭配微型神經網路處理器(MicroNPU) Ethos-U55/U65/U85 進行硬體加速。為了讓 PyTorch / TensorFlow 等框架訓練出來模型能更順利在這種組合的晶片上運行,通常會先將模型轉換成 TensorFlow Lite (*.tflite)格式,最後再經過 Arm Vela Compiler 轉換成適合 MCU 及 NPU 的 TFLite 格式( *_vela.tflite)。
轉換過程中若 TFLite 運算子(Operators, Ops)可滿足 NPU 硬體特性,則 Vela Compiler 會將其送至 NPU 執行,其它無法處理的運算子就交給 MCU 處理。Cortex-M55/M85/M82 使用 M-Profile Vector Extension (MVE 或稱 Helium) 指令集,可處理向量計算,搭配 Arm CMSIS-NN 函式庫可大幅優化及加速計算。
為了讓大家更清楚不同的 MicroNPU 可以支援哪些 TFLite(現稱 LiteRT) 運算子,可參考下表。更多的使用方式及限制可參考原文。
Vela 版本:4.5.0
| Ethos-U55/U65 | Ethos-U85 | 說明 |
|---|---|---|
| ABS | ABS | 取絕對值 |
| ADD | ADD | 加法 |
| ARG_MAX | ARG_MAX | 取多項中最大值 |
| AVERAGE_POOL_2D | AVERAGE_POOL_2D | 2D 平均池化 |
| – | BATCH_MATMUL | 批次矩陣乘法 |
| – | CAST | 資料強制轉型 |
| CONCATENATION | CONCATENATION | 張量合併 |
| CONV_2D | CONV_2D | 2D 卷積 |
| DEPTHWISE_CONV_2D | DEPTHWISE_CONV_2D | |
| – | DIV | 除法 |
| – | EQUAL | 相等 |
| EXP | EXP | 指數 |
| EXPAND_DIMS | EXPAND_DIMS | 擴張資料為1的維度 |
| FULLY_CONNECTED | FULLY_CONNECTED | 全連結 |
| – | GATHER | 索引提取 |
| – | GREATER | 大於 |
| – | GREATER_EQUAL | 大於等於 |
| HARD_SWISH | HARD_SWISH | 激活函數HARD_SWISH |
| LEAKY_RELU | LEAKY_RELU | 激活函數LEAKY_RELU |
| – | LESS_EQUAL | 小於等於 |
| – | LOG | 對數 |
| – | LOGICAL_AND | 邏輯與 |
| – | LOGICAL_NOT | 邏輯反 |
| – | LOGICAL_OR | 邏輯或 |
| LOGISTIC | LOGISTIC | 激活函數Sigmoid |
| MAXIMUM | MAXIMUM | 最大值 |
| MAX_POOL_2D | MAX_POOL_2D | 2D 最大池化 |
| MEAN | MEAN | 平均值 |
| MINIMUM | MINIMUM | 最小值 |
| MIRROR_PAD | MIRROR_PAD | 鏡向填充 |
| MUL | MUL | 乘法 |
| – | NOT_EQUAL | 不等於 |
| – | PACK | 多維資料堆疊 |
| PAD | PAD | 擴大維度填充 |
| – | PADV2 | 擴大維度填充 |
| PRELU | PRELU | 激活函數PRELU |
| QUANTIZE | QUANTIZE | 量化數值 |
| – | REDUCE_ALL | 資料縮減(邏輯與) |
| – | REDUCE_ANY | 資料縮減(邏輯或) |
| – | REDUCE_MAX | 資料縮減(最大值) |
| – | REDUCE_MIN | 資料縮減(最小值) |
| RELU | RELU | 激活函數RELU |
| RELU6 | RELU6 | 激活函數RELU6 |
| RELU_0_TO_1 | RELU_0_TO_1 | 激活函數RELU 0~1 |
| RELU_N1_TO_1 | RELU_N1_TO_1 | 激活函數RELU -1~1 |
| RESHAPE | RESHAPE | 改變資料維度 |
| RESIZE_BILINEAR | RESIZE_BILINEAR | 雙線性內插縮放 |
| RESIZE_NEAREST_ NEIGHBOR | RESIZE_NEAREST_ NEIGHBOR | 最近鄰插值縮放 |
| – | REVERSE_V2 | 反轉資料 |
| RSQRT | RSQRT | 平方根導數 |
| SHAPE | – | 取得資料維度 |
| – | SCATTER_ND | 數據散佈到張量 |
| – | SELECT | 條件式選擇 |
| – | SELECT_V2 | 條件式選擇 |
| SLICE | SLICE | 提取子區域 |
| SOFTMAX | SOFTMAX | 激活函數SOFTMAX |
| SPLIT | SPLIT | 子區域分割 |
| – | SPLIT_V | 子區域分割 |
| SQUARED_DIFFERENCE | SQUARED_DIFFERENCE | 差值平方 |
| SQUEEZE | SQUEEZE | 移除資料為1的維度 |
| STRIDED_SLICE | STRIDED_SLICE | |
| SUB | SUB | 減法 |
| SUM | SUM | 加線 |
| TANH | TANH | 激活函數TANH |
| – | TILE | 資料平鋪(複製) |
| TRANSPOSE | TRANSPOSE | 矩陣轉置 |
| TRANSPOSE_CONV | TRANSPOSE_CONV | 反卷積 |
| UNIDIRECTIONAL_ SEQUENCE_LSTM | UNIDIRECTIONAL_ SEQUENCE_LSTM | LSTM單向序列資料優化 |
| UNPACK | UNPACK | 張量拆解 |
更多關於 Ethos-U55/U65 及 Ethos-U85 的完整介紹,可參考下列連結。
- Arm Ethos-U55 NPU Technical Reference Manual
- Arm Ethos-U85 NPU Technical Reference Manual
- Pypi - Ethos-U-Vela Compiler

沒有留言:
張貼留言