跳转到主要内容
博客

通过三个简单步骤开始使用 PyTorch、ExecuTorch 和 Ethos-U85

作者: 2024 年 10 月 28 日2025 年 5 月 5 日无评论

ExecuTorch 对 Ethos-U85 的支持

在快速发展的机器学习领域,PyTorch 因其灵活性和全面的生态系统而成为模型开发的主要框架。Arm 与 Meta 合作,在 ExecuTorch 中引入了对 Arm 平台的支持,这进一步简化了 PyTorch 模型在边缘设备上的部署过程。

Arm Ethos-U85 NPU 是性能最高的 Ethos NPU,旨在满足在边缘运行高级 AI 推理工作负载(包括 LLM 等基于 Transformer 的网络)日益增长的需求。Arm 提供参考设计,包括 Corstone-320 IoT 参考设计平台,围绕 Ethos-U 加速和简化芯片开发周期。该参考设计平台包括(但不限于)一个固定虚拟平台 (FVP),它模拟整个系统,从而支持 Ethos-U85 的尖端嵌入式软件开发和神经网络部署。

今天,Arm 通过支持 Ethos-U85 上的 ExecuTorch Beta 版,扩展了对开发物联网边缘应用程序的开发人员的支持。利用 ExecuTorch,开发人员现在可以高效地将其原生开发的 PyTorch 模型部署到基于 Arm 构建的智能响应式物联网解决方案中。

随着此软件包的推出,成千上万希望创建边缘 AI 应用程序的开发人员可以在平台上市前数月就开始其模型和应用程序开发。

开始在 Ethos-U85 上使用 ExecuTorch

公共 ExecuTorch GitHub 存储库中提供了一个完整的开发环境。这提供了一个集成的、经过测试的开发流程,包含所有必要的组件。

这三个简单的步骤是:

  1. 设置 ExecuTorch
  2. 设置 Arm 构建环境
  3. 在 arm_executor_runner 上编译并运行模型

然后,您可以在此流程的基础上编译和运行模型,以从 Ethos-U85 驱动程序捕获运行时行为,例如周期计数信息。

为了方便最终用户,我们还在 ExecuTorch 存储库中添加了脚本:

  1. 设置 ExecuTorch
  2. setup.sh:下载必要的软件。
  3. 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 张量运算符集架构 (TOSA) 的表现力,我们已在 ExecuTorch 中启用了 Ethos-U 支持。Ethos-U 编译器 Vela 已通过 TOSA 前端得到增强,从而可以为 Ethos-U 系列中的所有产品编译模型。将这些组件组合成一个内聚的工作流程涉及以下步骤。

  1. 将 PyTorch 模型转换为可部署的 ExecuTorch 程序(AOT 流程)
  2. 将 ExecuTorch 程序编译成可执行文件,该文件可以部署在 Corstone-320 上(运行时流程)

ExecuTorch 提前 (AOT) 流程

该过程首先使用 PyTorch dynamo 导出流程将 PyTorch 模型转换为量化的 TOSA 表示。这使我们能够利用 Vela 编译器 TOSA 前端生成一组 Ethos-U 机器指令,称为命令流。命令流捆绑到 ExecuTorch 程序中,由 flatbuffer 文件 (.pte) 表示。此文件包含 ExecuTorch 运行时使用 Ethos-U 硬件执行推理所需的一切。

flow diagram

ExecuTorch 运行时流程

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

flow diagram

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 MACs/周期,在 1GHz 时提供高达 4 TOP/s 的性能
  • 与基于 Cortex-A 和 Cortex-M 的系统兼容
  • 通过 TOSA 支持主要神经网络的本机支持
  • 所有主要神经网络的完全硬件加速
  • 有关功能的完整列表,请参阅 Ethos-U85 技术概述
A typical compute subsystem design with Ethos-U85

Ethos-U85 的典型计算子系统设计

下一步是什么

我们每周都会增加新的运算符支持,扩展 ExecuTorch 核心 ATen 运算符覆盖范围,并使更广泛的模型能够在 Ethos-U 上运行。我们正在进行的努力专注于提高性能,以确保模型在 Ethos-U 上尽可能优化地运行。

ExecuTorch 委托框架支持回退到在 CPU 上使用参考内核实现运行 Ethos-U 不支持的运算符。我们将努力使用 CMSIS-NN 在 Cortex-M CPU 上实现最佳性能,为回退运算符提供最佳支持,并确保没有 Ethos-U 功能的设备也能获得最佳性能。

上述包含 Corstone-320 FVP 的软件包是简化应用程序开发的更多步骤,所以请大家继续,查看代码和构建过程并向我们发送反馈。同时,我们将忙于每周发布新版本,以启用更多功能、模型并从硬件中提取最大性能。