将 ExecuTorch 引入 Arm Cortex-M CPU

📌 One-Sentence Summary
Meta 与 Arm 详细介绍了 ExecuTorch 的新 Cortex-M 后端如何通过 CMSIS-NN 加速在 Arm Cortex-M CPU 上直接部署 PyTorch 模型,基准测试显示在 MLPerf Tiny 模型上推理延迟低于 22 ms,且 RAM 占用低于 90 KiB。
📝 Summary
本文介绍了 ExecuTorch 对 Arm Cortex-M CPU 的支持,消除了将 PyTorch 模型转换为其他格式的需要。Cortex-M 后端通过 CMSIS-NN 替换 PyTorch 算子,为微控制器提供了离线编译。它支持针对 Scalar、DSP 和 MVE/Helium 架构的架构感知编译,并使用 PT2E 专用的 INT8 量化器以及针对 TCM 和 SRAM 的静态内存规划。它通过单一工作流支持所有能力等级,并在 Ethos-U NPU 之外提供了 CPU 执行路径。在 Alif Ensemble E8(400 MHz Cortex-M55)上的基准测试显示,MLPerf Tiny 模型运行时间在 21.5 ms 以内,RAM 占用低于 90 KiB,且通过算子选择性构建代码仅占 15-37 KiB。在 Cortex-M85 上的实时 µYOLO 人体检测实现了 24 ms 延迟。此外概述了开发者工作流、入门资源以及混合精度、FP 内核和更广泛算子覆盖的路线图。
💡 Main Points
无需转换直接部署 PyTorch
ExecuTorch 消除了了以往将模型转换为其他格式并维护独立工具链的需求,使得训练和部署能够留在 PyTorch 生态系统中。
基于 CMSIS-NN 加速的后端与架构感知 AOT 编译
算子在编译时被替换为 CMSIS-NN 内核,支持从 M0 到 M85 的 ISA 等级选择、量化参数折叠、权重布局转置以及静态内存规划,从而消除了运行时分发和堆分配。
全能力等级支持与基准测试
该后端针对 Scalar、DSP 和 MVE/Helium 等级;在 Alif E8 上的 MLPerf Tiny 基准测试显示 DS-CNN 为 5.8 ms、MobileNet v1 0.25 为 21.45 ms、ResNet-8 为 15.29 ms、Autoencoder 为 1.2 ms,内存均低于 90 KiB。
异构 CPU+NPU 执行与极小 footprint
Cortex-M 插件在 Ethos-U 分区混合 CPU/NPU 图形后运行,ExecuTorch 核心运行时小于 20 KiB Flash,通过算子选择性构建使代码大小随模型缩放。
💬 Key Quotes
过去,在微控制器上部署 PyTorch 模型通常需要转换为其他框架格式、维护独立的工具链,并调试跨框架的数值差异。
ExecuTorch 核心运行时小于 20 KiB Flash,且算子选择性构建仅链接模型所需的算子,因此总代码大小随模型而非框架缩放。
在此之前,在 Cortex-M 上部署机器学习意味着必须离开 PyTorch 生态系统。
📊 Article Meta
AI Screening: 90
Featured: Yes
Source: PyTorch
Author: RJ Ascani (Meta), Adrian Lundell (Arm), Siddartha Pothapragada (Meta), Digant Desai (Meta), Zingo Andersen (Arm), Måns Nilsson (Arm), Erik Lundell (Arm)
Category: 人工智能
Language: 英文
Read Time: 9 min
Word Count: 2077
Tags:
AI 与智能应用 , AI 硬件与芯片 , 模型训练与推理 , 开源项目 , 量化技术
内容翔实,正好需要,先收藏再看。
这个比较实用,已转发给同事。