58

Yabin · 2021年06月11日

TensorFlow Lite Micro 助力 Arm Endpoint AI 落地

作者:郑亚斌,Arm中国资深生态市场经理

随着 5G 和 AIoT 的快速发展,人们对于网络延迟,隐私保护以及用户体验提出了更高的要求。同时,这些需求也不断地推动端侧计算的转变。我们将 AI 应用与端侧计算的结合称为 Endpoint AI。去年,Arm 宣布推出最新 Cortex-M55 处理器和 Ethos-U AI 加速器,为物联网设备在降低能耗的同时显著提升机器学习 ( ML ) 和信号处理 ( DSP ) 能力。最近 Arm 开源了多种开发工具和评估软件,帮助合作伙伴尽快完成软件评估和软件开发工作。很多朋友可能对 Cortex-M55 和 Ethos-U 并不熟悉,我们将在这篇文章中对其以及相关的评估工具进行简要介绍。

Cortex-M55

Cortex-M55 处理器是第一个支持 Armv8.1-M 架构的 Arm Cortex-M 处理器。 与同系列产品相比,借助 Helium 技术(也称为 M-Profile Vector Extension,MVE),基于 Cortex-M55 的产品在信号处理和 AI 应⽤中体现出了极大的优势,其性能和能效得到了显著提高。 Armv8.1-M 架构是在 Embedded World 2019 期间宣布的,可以在此处下载 Armv8.1-M 白皮书。Cortex-M55 框图如下所示:

              图1.1.png
                              图1.1 Cortex-M55 框图

Cortex-M55 的主要特征有:

  1. Helium:新增超过150条标量和矢量指令,对8bit,16bit和32bit定点数据格式高效支持。
  2. 浮点支持:支持半精度(fp16)、单精度(fp32)和双精度(fp64)数据格式的标量浮点指令。与 Helium 配合可实现对浮点的矢量支持。
  3. 安全保护:支持 TrustZone,实现对数据安全的保护。
  4. 可配置:用户可根据应用场景,对 Cortex-M55 内部的各个部分灵活配置(Cache,TCM,Helium,FPU 等)。
  5. 更灵活高效的内部存储系统,丰富的对外接口等。

感兴趣的朋友可以去 Arm 官方网站学习相关资料:

Ethos-U

Ethos-U 系列 AI 加速器目前发布两款产品:Ethos-U55 和 Ethos-U65。 Ethos-U55 是 Arm 的第一款 micro NPU IP,是一种全新的 AI 处理器,用于在资源受限的嵌入式 IoT 设备中加速 AI 推理任务。 在进行 AI 计算时,Ethos-U 需要与 Cortex-M 配合,共同完成端侧推理任务。 Ethos-U 框图如下所示:
               img
                                         图2.1 Ethos-U 框图

Ethos-U55 的主要特征有:

  1. 可配置:Ethos-U55 支持 32, 64, 128和256 MAC/cycle 四种配置,方便合作伙伴开发和设计定位于不同应用场景的 AI 芯片。
  2. 面积小:相较于传统的 MCU,Ethos-U55 在约0.1平方毫米的面积内可将能耗降低90%,适用于成本敏感且能耗受限的边缘侧 AI 应用。
  3. 工具链统一:通过将 Ethos-U55 与 Cortex-M 的工具链进行整合,研发人员只需一套开发工具即可完成逻辑代码与 AI 运算的联合调试,极大的简化开发流程,减小开发难度,从而加快产品上市时间。
  4. 多网络支持:对包括 CNN 和 RNN 在内的最常见 AI 网络均实现了高效的支持,算子添加更灵活易用。
  5. 开源:与 Ethos-U 相关的所有软件均实现了开源,其中包括离线优化工具 Vela,TensorFlow Lite for Micro, Driver 和 Evaluation Kit 等多种评估工具。

图2.2 Ethos U系列产品对比.png
                                       图2.2 Ethos-U 系列产品对比

作为 Ethos-U55 的升级版,Ethos-U65 主要在算力和总线带宽上进行了提升,同时在软件调度及内存优化方面采取了更加灵活的策略,因此适用于对算力要求更大,应用场景更丰富的领域。图2.2主要展示了 Ethos-U55 与 Ethos-U65 的配置区别。

很多朋友问我什么时间可以拿到带有 Cortex-M55 和 Ethos-U 的芯片,好消息是 NXP 作为 Ethos-U 的 lead partner,在不久的将来会量产带有 Ethos-U 的芯片。这篇文章详细描述了 NXP 与 Arm 在 Ethos-U 上的思考与合作。在运行 MobileNet_v2 深度神经网络时,以 1GHz 运行的 Ethos-U65(512GOPS) 芯片能够在不到3ms的时间内完成识别任务,比工作在 2GHz 的四核 Cortex-A53 推理速度至少快十倍。由于全球芯片产能紧缺以及产品设计周期等多种原因,目前芯片面世时间还不确定。那有没有办法提前体验或者评估 M55+U55 的方案呢?

Evaluation Kit

Arm 通过开源 Evaluation Kit 工具帮助开发者以及合作伙伴提前体验 M55+U55 软件的易用性和性能优势。Package 中包含了 6 个 AI 用例,方便开发者快速熟悉代码以及环境,合作伙伴也可在其基础上开发自己的 demo。它们分别是:

  1. Image Classification - 图像分类
  2. Keyword Spotting(KWS) - 关键词唤醒
  3. Automated Speech Recognition(ASR) - 自动语言识别
  4. KWS and ASR - 关键词唤醒,自动语言识别
  5. Anomaly Detection - 异常检测
  6. Generic inference runner - 通用推理框架

参考用例描述以及对应的 AI 模型请参考下图:
图3.1 Evaluation Kit Package.png
                                         图3.1 Evaluation Kit Package
以上所有用例均包括数据预处理,AI 推理和后处理部分,方便大家对整个 AI 数据流有清晰的了解。在执行完成后通过显示不同的性能指标(例如完成一次执行所需的 cycle 数和网络执行结果)方便开发者评估 Cortex-M55+Ethos-U55。

开源链接:
Evaluation Kit

软件及硬件架构

该评估套件硬件平台基于 Arm Corstone-300 参考设计。 Corstone-300 是针对 Cortex-M55 和 Ethos-U55 研发的参考设计,其中实现了包括 TrustZone 在内的多个 feature,可帮助客户在 Cortex-M55 和 Ethos-U55 设计上快速构建 SoC。 Corstone-300 参考设计可以部署在 Arm MPS3 FPGA 平台,或者直接采用基于其设计的 Arm Fixed Virtual Platforms (FVPs)。前者需要 Corstone-300 FPGA image 的文件支持,可以参考 Arm 官网 AN547 package;而后者可以简单理解为软件仿真平台(Functional Model)。将 Evaluation Kit 部署到 FVP 上,可实现对功能的验证。由于 Evaluation Kit 在 FPGA 和 FVP 上的运行机制和代码几乎完全相同,因此建议大家采用 FVP 平台进行评估(这里需要注意的是,由于 FVP 为软仿平台,因此其 cycle 统计数有较大误差,采用 FPGA 可准确输出性能数据)。

链接:
Arm®Corstone™-300
FPGA prototyping boards
Arm Ecosystem FVPs

接下来再给大家介绍下 Evaluation Kit 的软件架构,如下图所示:
               图 3.2 Evaluation Kit 软件架构.png
                                        图 3.2 Evaluation Kit 软件架构

我们知道,大部分的 AI 用例都包含通用代码(Application common),例如初始化硬件抽象层(HAL)。 借助 HAL,应用程序通用代码可以在 x86 或 Arm Cortex-M 架构上运行。为什么要设计 HAL 层做抽象呢?因为大量的 AI 应用都离不开前后数据处理操作,在端侧设备上,这部分工作可由 Cortex-M 胜任,为了方便大家设计与调试,我们同样可以将其执行在 x86 平台做效果验证。对于应用程序的 AI 部分,TensorFlow lite for Micro 推理引擎用于对神经网络的运算进行调度,NPU 支持的算子交由 Ethos U 执行,NPU 不支持的算子将被调度到 CPU 上由 CMSIS NN 开源加速库或者 Reference Kernel 加速执行。

接下来看一下 Evaluation Kit 的目录结构:

               图3.3 Evaluation Kit 的目录结构.png
                              图3.3 Evaluation Kit 的目录结构

  1. dependencies:包含该项目的所有第三方依赖项。
  2. docs:包含 AI 应用程序的文档。
  3. scripts:包含构建程序相关的脚本和源代码。
  4. source:包含平台和 AI 应用程序的所有源代码。与 Ethos-U55 NPU 软件框架相关的通用代码位于 application 子文件夹中,包含构成 AI 应用程序的所有核心源代码:hal 为硬件抽象层,提供统一的 API 对硬件资源进行访问;main 包含 main 函数以及平台初始化函数,它还包含调用所有用例所实现的通用代码;tensorflow-lite-micro 包含 TensorFlow Lite for Micro 的 API 封装,用来实现初始化神经网络模型,运行推理并访问推理结果等通用功能。use_case 包含 AI 用例特定的源代码,将其单独列出可以隔离特定的 AI 应用程序逻辑,通用代码也会调用此处的代码对特定用例进行配置,这也使添加新用例变得更加容易。
  5. tests:在 x86 平台上的 unit test 集。

要在 Cortex-M 和 Ethos-U55 NPU 上运行 AI 应用程序,请按照以下步骤操作:

  1. 安装并配置必要的环境。
  2. 使用 Vela 编译器为 Ethos-U 生成优化的神经网络模型。Vela 是 Arm 针对 Ethos U 设计的开源编译器,用于对模型离线优化。
  3. 配置构建系统。
  4. 使用 make 命令编译项目。
  5. 在 FVP 或者 FPGA 上执行应用。

具体操作命令可以参考 Evaluation Kit 开源网站

               图3.4 基于 FVP 的 Evaluation Kit 交互界面.png
                          图3.4 基于 FVP 的 Evaluation Kit 交互界面

将 Evaluation Kit 成功部署在 FVP 后,执行相关的 AI 应用时,会弹出用户交互界面,如图3.4所示。左半部分用于模拟 FPGA 开发板上的液晶显示,可以输出图片,打印结果等信息,而右侧窗口可以用来输出程序版本,日志,模型结构等信息,还可用于人机间的交互。

结语

Cortex-M55 和 Ethos-U 是 Arm Endpoint AI 战略中具有跨时代意义的产品,配合 Evaluation Kit 开源工具以及 CMSIS 加速库,给予开发者以及合作伙伴极好的用户体验。今后我们会在越来越多的 IoT 产品中看到 AI 的应用,而 Arm 作为 IP 行业的领导者,将不断结合产业需求与自身生态优势,赋能 AI 的发展。

推荐阅读
关注数
23582
内容数
1033
Arm相关的技术博客,提供最新Arm技术干货,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息