大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 ARM Ethos-U55。
ARM 前几天刚发布了 Cortex-M 家族最新一款内核 - Cortex-M55 以及首款面向 Cortex-M 系列的 microNPU - Ethos-U55。Cortex-M55 是第一款面向 AI/ML 的 Cortex-M 内核,痞子衡也专门为此写过一篇小文 《为 AI/ML 而生(Cortex-M55)》,在那篇小文里痞子衡只是一笔带过 Ethos-U55,未作深入探讨,今天痞子衡就跟大家好好聊聊 Ethos-U55。
在正式介绍 Ethos-U55 之前,有必要提及一下 ARM 公司的 Project Trillium 项目,这是 ARM 公司于 2018 年 2 月推出的一套包括新的高度可扩展处理器的 Arm IP 组合以及相关配套软件的机器学习平台。这个平台里有你肯定不陌生的 Mali 系列 GPU 和 Arm NN 库,以及 2019 年 10 月发布的 Ethos-N 系列 NPU,如今 Ethos-U55 也正式加入了 Project Trillium 大军。
那么 Ethos-U55 到底是什么?其实它是一种小型的专用的 microNPU 推理加速器,强大的运算能力是其最核心的特点,其性能可达 64 - 512 GOP/s(Giga Operations Per Second,每秒十亿次的运算),这个运算能力秒杀 Cortex-M CPU。不过对比用在 Cortex-A 系列上的大型 NPU - Ethos-N 的 1 - 4 TOP/s 性能 (Trillion Operations Per Second,每秒万亿次的运算)还是要弱一些,因此它只能算 microNPU,适合与 Cortex-M 搭配工作。
在神经网络框架上 Ethos-U55 当前仅支持 TensorFlow Lite Micro,这点跟 Ethos-N 能支持的框架全家桶(TensorFlow, TensorFlow Lite, Caffe2, PyTorch, MXNet, ONNX)相比也单调一些,但毕竟是单片机 AI 嘛,第一步是先能玩起来,TensorFlow Lite 够用了。
虽然 Ethos-U55 是同 Cortex-M55 一起发布的,但它并不仅仅只能用在 Cortex-M55 上,其还可以搭配 Cortex-M4/M7/M33 一起工作,只不过 Ethos-U55 与 Cortex-M55 搭配起来效果最佳,其组合性能相比 Cortex-M7 单系统要提高 50 倍,而 ML 性能更是提升了令人瞠目结舌的 480 倍。
前面介绍了那么多 Ethos-U55 性能,我们再来看看它是如何与 Cortex-M 一起协同工作的,且以它的最佳搭档 Cortex-M55 为例。Ethos-U55 上设计了两个 AXI master 接口(64bit),其中 AXI-1 是可读可写的,用于访问共享 SRAM;另外 AXI-2 是只读的,专门用于从 NVM(flash) 里获取指令执行。此外 Ethos-U55 上还设计了一个 APB slave 接口,用以提供控制及配置寄存器的访问。
所以 Ethos-U55 在系统里的工作流程是,Cortex-M55 通过 APB 接口向 Ethos-U55 发出启动神经网络处理命令,Ethos-U55 收到命令后通过 AXI-2 从 NVM 获取具体命令序列指令,处理完成后 Ethos-U55 通过专门 IRQ 信号线向 Cortex-M55 发出中断事件。
让我们以一个典型的智能语音应用再来分析 Ethos-U55 与 Cortex-M55 协同工作机制,默认情况下 Ethos-U55 保持低功耗模式,由 Cortex-M55 来完成语音检测以及唤醒词识别(KWS),一旦检测到有效唤醒词,这时候便可激活 Ethos-U55 完成后续语音识别(ASR)任务,以及进一步神经网络处理去识别语义。
至此 Ethos-U55 痞子衡便介绍完了,不知道哪个 MCU 厂商会率先推出含这款 microNPU 的 MCU,不知道这款 microNPU 会和哪款 Cortex-M 内核初次搭档,留言说出你的答案。