《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 如何为AI应用选择合适的Arm边缘AI解决方案?

如何为AI应用选择合适的Arm边缘AI解决方案?

2025-02-28
作者:Arm 物联网事业部产品管理总监 Tim Menasveta
来源:Arm
关键词: ARM Armv9 边缘AI Cortex-A320

Arm Cortex-A320 是目前最小型的 Armv9-A 架构 CPU。得益于该处理器的推出,开发者现在能有更多选择决定如何处理物联网边缘人工智能 (AI) 工作负载。然而,面对多样化的选择,要确定适合特定 AI 应用的处理器,系统开发者需要通过比较基于 Arm Cortex-A、Arm Cortex-M 和 Arm Ethos-U NPU 的设备及其可能的搭配进行决策。除了成本的考量,开发者还需了解各款处理器具备的 AI 功能,以及自身的项目可以通过何种软件开发流程实现简化。

在嵌入式设备中实现高能效 AI 计算

近年来,嵌入式设备中的 AI 计算效率突飞猛进。Arm 的 M 和 A 处理器架构的提升使得每单位能耗的机器学习 (ML) 推理性能呈数倍增长。特别是在 M 处理器架构上,基于 Armv8.1-M 架构的 Cortex-M52、Cortex-M55 和 Cortex-M85 CPU 集成了可编程的 Helium 向量扩展,从而解锁了在微控制器级设备上实现新 AI 用例的能力。此外,得益于可伸缩向量扩展 (SVE2) 的引入,基于 Armv9 架构的 Cortex-A 处理器(如最新推出的 Cortex-A320)相较其前代产品进一步提升了 AI 性能。而 Ethos-U 系列 NPU 的最新一代产品 Ethos-U85 ,尤其在处理 Transformer 网络时,表现更为高效。

如何选择合适的硬件?

每种架构在不同方面各有优势。在考虑哪款硬件最适合时,原始性能应与设计灵活性相权衡。此外,还需要将包括 CI/CD 要求在内的软件开发流程纳入考量。

性能

满足所需的 AI 处理性能至关重要。Cortex-A 处理器本就是一款面向多种应用的可编程处理器,集成了 Neon/SVE2 向量引擎,旨在加速神经网络和各种向量化代码,并能原生支持多种数据类型。而带有 Helium 向量引擎的 Cortex-M 处理器具备相同特性,且更适用于成本和能耗相对有限的目标用例。相比之下,包含 Ethos-U85 在内的 Ethos-U NPU 则专为处理神经网络算子而设计,尤其还具备了量化的 8 位整数数据权重的能力,对于可以映射到这些 NPU 硬件的网络算子,其任务表现十分高效。

基于 Armv9 架构的最新一代 Cortex-A CPU 支持 BF16 等广泛的数据类型。此外,引入的新矩阵乘法指令显著提高了神经网络的处理性能。关于如何通过 SVE2 实现矩阵乘法的详细解释,推荐阅读《Neon、SVE 和 SME 实现矩阵-矩阵乘法的比较》。

Cortex-M55 是首款集成 Helium 向量技术的 Cortex-M 处理器,此后推出的 Cortex-M85 也集成了这一技术。两者都实现了双节拍 (dual-beat) Helium 配置,每个时钟周期可执行多达八次的 8 位整数乘积累加运算 (MAC) 操作。此外,Helium 还原生支持 FP16、FP32 等其他数据类型。

最后,在具有量化数据类型的模型上,具体来说是 INT8 权重,以及 INT8 或 INT16 激活数据,Ethos-U NPU 可以非常高效地处理神经网络。这种设计虽会限制其适用的数据类型,但可提高 NPU 的执行效率。

评估处理器在实际 AI 工作负载中性能的方法之一,是分析其每种数据类型和每个时钟周期的理论 MAC 执行能力。由于神经网络处理使用大型数据集,因此内存访问性能是另一大关键因素。不过在本例中,我们着重于处理器密集 (processor-bound) 性能,而非内存密集 (memory-bound) 性能。

神经网络处理速率通常受限于底层硬件的 MAC 操作速率。虽然实际的网络处理性能因网络结构而异,但下表所示的的理论 MAC 处理速率提供了硬件能力的指标。

Untitled.png

软件

另外一个考虑的因素是每个硬件方案的软件支持。Arm 为包括 Cortex-A、Cortex-M 和 Ethos-U 等在内的各类 AI 硬件解决方案提供全面的开源运行时支持软件。Arm 为各种 ML 框架和运行时提供硬件加速支持,包括 PyTorch、ExecuTorch、Llama.cpp、TensorFlow 和 LiteRT(通过 XNNPACK)。任何 ML 框架都可通过优化,进而充分利用 Arm 的 AI 特性。在 Arm 处理器上执行的运行时可利用 CMSIS-NN(针对 Cortex-M/Helium)和 Arm Compute Library 或 Arm KleidiAI(针对  Neon/SVE2 中的 INT8 和 BF16)等软件加速库。Vela 编译器是一个通过优化模型来实现高效部署的离线工具,可在  Ethos-U 上进一步调优可执行二进制文件,从而实现更卓越的硬件性能。

何时使用 Ethos-U?

一些具有明确定义的  AI 工作负载的边缘 AI 用例可以通过将神经网络处理卸载到专用 NPU 上,从而释放主处理器的计算密集型任务,并由此获益。如前所述,Ethos-U NPU 在处理具有量化的 8 位整数权重的神经网络时非常高效。Transformer 网络特别适合在 Ethos-U85 上运行。然而,Ethos-U85 NPU 需由一个主处理器(可以是 Cortex-M 或 Cortex-A)进行驱动。

主处理器与 Ethos-U 间可以有多种配置方式。Ethos-U 可由像 Cortex-M55 等启用 Helium 的 Cortex-M 处理器驱动使用。目前市面上已有这种系统级芯片 (SoC) 配置的示例。近期,在小语言模型 (SLM) 上运行生成式 AI 工作负载愈发受到业界关注。Ethos-U 与启用 Helium 的Cortex-M处理器相结合,是此类用例的上佳之选。

此外,还有基于 Cortex-A 处理器的 SoC 集成了基于 Cortex-M 核心的 ML 岛与 Ethos-U。这类 SoC 通常适合运行 Linux 等功能丰富的操作系统,并支持更大、更灵活的内存系统。Cortex-M CPU 拥有 32 位可寻址内存地址空间,能实现直接内存地址映射,而像 Cortex-A320 等更新款的 Cortex-A 处理器则具有 40 位内存可寻址空间,还可以通过内存管理单元 (MMU) 的虚拟内存寻址。

随着大语言模型 (LLM) 的执行逐渐转向边缘 AI 设备,拥有更大和更灵活的内存系统可以简化较大参数规模(例如大于 10 亿参数的 LLM)模型的执行。Cortex-M 和 Ethos-U85 的组合很适合于越来越受到欢迎的小语言模型。Cortex-M 处理器具有 4GB 的寻址空间,并保留了其中一些空间用于系统功能。随着 LLM 模型规模的增长,具有更大和更灵活内存的 Cortex-A 系统将变得至关重要。

Arm 近期又宣布了另一种配置方式,称为“直接驱动 (direct drive)”,即 Cortex-A 处理器直接驱动 Ethos-U NPU。这种配置无需专门的 Cortex-M 作为“驱动”处理器。Ethos-U85 的 Linux 驱动程序可在 Cortex-A 主控制器上运行。

222.png

利用 Cortex-A320 满足边缘设备的生成式 AI 需求

边缘 AI 系统开发者现在有更多的选择来优化物联网中最靠近边缘侧的 AI。无论选择 Cortex-M、Cortex-A 还是 Ethos-U 加速系统,每种选择都可满足不同的需求。Cortex-A320 处理器能够直接驱动 Ethos-U85,这让设计人员获得了更多的灵活性。作为 Arm 最小型、最高能效的  Armv9-A 处理器,Cortex-A320 在提高边缘侧 AI 能效的同时,适应嵌入式系统中生成式 AI 演进的需求。点击此处,了解 Arm 变革性的边缘侧 AI 解决方案如何塑造物联网的未来!


Magazine.Subscription.jpg

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。