将 ExecuTorch 引入 Arm Cortex-M CPU

山止川行行业资讯📡 BestBlogs·全站精选⭐ 902026-10-16959 阅读💛 213 收藏
将 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 硬件与芯片 , 模型训练与推理 , 开源项目 , 量化技术

#AI 与智能应用# AI 硬件与芯片# 模型训练与推理# 开源项目# 量化技术

文章评论(4)

青柠微凉36 分钟前

这篇文章分析得很透彻,收藏了!

回复
雪影2 小时前

这个比较实用,已转发给同事。

回复
南山客26 分钟前

收藏了,以后慢慢研究。

回复
暮临风47 分钟前

作者写得真不错,学到了不少。

回复