ExecuTorch 支持 Ethos-U85
在快速发展的机器学习领域,PyTorch 以其灵活性和全面的生态系统已成为模型开发的主流框架。 Arm 已与 Meta 合作,在 ExecuTorch 中引入了对 Arm 平台的支持,这进一步简化了在边缘设备上部署 PyTorch 模型的流程,使其无缝连接。
Arm Ethos-U85 NPU 是性能最高的 Ethos NPU,可满足边缘设备上运行高级 AI 推理工作负载(包括基于 Transformer 的网络,如 LLM)日益增长的需求。Arm 提供参考设计,包括 Corstone-320 IoT 参考设计平台,围绕 Ethos-U 加速和简化芯片开发周期。该参考设计平台除许多其他项目外,还包括一个固定虚拟平台 (FVP),可模拟整个系统,从而实现尖端嵌入式软件开发和 Ethos-U85 的神经网络部署。
今天,Arm 通过支持 Ethos-U85 上的 ExecuTorch beta 版,扩展了对构建物联网边缘应用程序的开发人员的支持。利用 ExecuTorch,开发人员现在可以有效地将他们原生开发的 PyTorch 模型部署到 Arm 上,以实现智能和响应迅速的物联网解决方案。
随着此软件包的推出,数千名希望创建边缘 AI 应用程序的开发人员可以在平台上市前几个月就开始模型和应用程序开发。
Ethos-U85 上的 ExecuTorch 入门
公共 ExecuTorch GitHub 存储库中提供了完整的开发环境。这提供了一个集成且经过测试的开发流程,包含所有必要的组件。
三个简单步骤是:
然后,您可以在此流程的基础上构建和运行模型,以从 Ethos-U85 驱动程序捕获运行时行为,例如周期计数信息。
为了方便最终用户,我们还在 ExecuTorch 存储库中添加了脚本
- 设置 ExecuTorch
- setup.sh:下载必要的软件。
- run.sh:用于在 Corstone-320 FVP 上编译和运行模型
要构建其他模型,您可以使用即时编译器脚本 aot_arm_compiler.py,它将 PyTorch 程序 (nn.module) 转换为 ExecuTorch 程序(.pte flatbuffer 文件)。要编写使用 ExecuTorch 的自定义应用程序,您可以遵循示例 executor_runner 应用程序中的应用程序流程。
我们支持大约 40 个核心 ATen 算子,并且已经支持 Mobilenetv2 等模型的端到端部署。持续支持更多算子的工作将每周启用更多的 PyTorch 模型。
随着更多功能的添加,它将通过 pytorch.org 上的 Ethos-U 教程材料进行演示
此部署流程如何更详细地工作
利用 ExecuTorch 的可扩展性和 Arm 的 Tensor Operator Set Architecture (TOSA) 的表现力,我们已在 ExecuTorch 中启用了 Ethos-U 支持。Ethos-U 编译器 Vela 已通过 TOSA 前端得到增强,从而可以为 Ethos-U 系列中的所有产品编译模型。将这些组件组合成一个内聚的工作流程涉及以下步骤。
- 将 PyTorch 模型转换为可部署的 ExecuTorch 程序(AOT 流程)
- 将 ExecuTorch 程序编译为可在 Corstone-320 上部署的可执行文件(运行时流程)
ExecuTorch 即时 (AOT) 流程
该过程始于使用 PyTorch dynamo 导出流程将 PyTorch 模型转换为量化的 TOSA 表示。这使我们能够利用 Vela 编译器 TOSA 前端生成一组 Ethos-U 机器指令,称为命令流。命令流捆绑到 ExecuTorch 程序中,由 flatbuffer 文件 (.pte) 表示。此文件包含 ExecuTorch 运行时使用 Ethos-U 硬件执行推理所需的一切。

ExecuTorch 运行时流程
ExecuTorch 运行时用 C/C++ 编写,旨在支持多个后端。我们已对其进行了扩展,以包含对 Ethos-U 设备驱动程序的支持。遵循此流程将生成一个自包含的编译可执行文件。在 Corstone-320 FVP 上部署可执行文件非常简单,只需在调用 FVP 时使用适当的标志即可。

Ethos-U85 和 Corstone-320
Ethos-U 系列 NPU 为边缘 AI 提供高性能和高能效解决方案。Ethos-U55(也受 ExecuTorch 支持)广泛部署在许多 Cortex-M 异构系统中,而 Ethos-U65 将 Ethos-U 系列的适用性扩展到基于 Cortex-A 的系统并提高了性能。
Ethos-U85 进一步扩展了 Ethos-U 产品线,通过使用 基于 Transformer 的网络,支持边缘上的当前和未来工作负载。与前代产品相比,Ethos-U85 性能提升 4 倍,能效提高 20%,在流行网络上的利用率高达 85%。Ethos-U85 的显着特点包括:
- 从 128 到 2048 MAC/周期配置,在 1GHz 下提供高达 4 TOP/s 的性能
- 兼容基于 Cortex-A 和 Cortex-M 的系统
- 通过支持 TOSA,原生支持主要的神经网络
- 所有主要神经网络的完全硬件加速
- 有关功能的完整列表,请参阅 Ethos-U85 技术概述

Ethos-U85 典型的计算子系统设计
下一步计划
我们每周都会添加新的算子支持,扩展 ExecuTorch 核心 ATen 算子的覆盖范围,并支持更多模型在 Ethos-U 上运行。我们正在努力改进性能,以确保模型在 Ethos-U 上尽可能优化地运行。
ExecuTorch 委托框架支持回退到使用参考内核实现在 CPU 上运行 Ethos-U 不支持的算子。我们将努力利用 CMSIS-NN 在 Cortex-M CPU 上实现最佳性能,为回退算子提供最佳支持,并确保没有 Ethos-U 功能的设备也能获得最佳性能。
上述带有 Corstone-320 FVP 的软件包是简化应用程序开发的更多步骤,所以请大家,继续,查看代码和构建过程并向我们发送反馈。同时,我们将忙于每周发布新版本,以启用更多功能、模型并从硬件中提取最大性能。