# Arm Ethos-U-Vela 可支援的 TFLite 運算子 作者:Jack OmniXRI, 2026/02/06 ![Workflow Cortex-M and Ethos-U](https://hackmd.io/_uploads/B1z1Uq7P-l.jpg) 參考資料來源: 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) 運算子,可參考下表。更多的使用方式及限制可參考[原文](https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/blob/main/SUPPORTED_OPS.md)。 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_<br>NEIGHBOR | RESIZE_NEAREST_<br>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_<br>SEQUENCE_LSTM | UNIDIRECTIONAL_<br>SEQUENCE_LSTM | LSTM單向序列資料優化 | | UNPACK | UNPACK | 張量拆解 | 更多關於 Ethos-U55/U65 及 Ethos-U85 的完整介紹,可參考下列連結。 * [Arm Ethos-U55 NPU Technical Reference Manual](https://developer.arm.com/documentation/102420/latest/) * [Arm Ethos-U85 NPU Technical Reference Manual](https://developer.arm.com/documentation/102685/latest/) * [Pypi - Ethos-U-Vela Compiler](https://pypi.org/project/ethos-u-vela/)