白皮书 在英飞凌ModusToolbox™环境中使用Arm®Ethos™- U55NPU实现机器学习应用 摘要 机器学习(ML)模型需要强大的计算资源来进行训练和推理,因此,它们通常在可以进行大算力数据处理的PC或云服务器上运行。然而,在计算机架构的革命性发展和软件工具的突破性进步的引领下,嵌入式系统Al和ML应用正在经历转型期。ML应用和场景正迅速扩展到物联网和嵌入式系统领域。当视频和图像等数据利用深度学习ML模型时,这些应用需要高处理能力的运算单元和大量的内存。为了支持这些场景,有必要使用诸如Arm®Ethos™-U55等神经网络协处理器(NPU)来增强处理器的性能。 能耗效率和低成本是嵌入式ML应用的关键标准。除增强处理能力之外,还需要降低系统功耗和提供高效的软件开发环境。开发环境涵盖了用于模型开发、训练和部署的工具和优化器。 英飞凌的PSoC™Edge平台及其ModusToolbox™软件开发环境可以更好地利用平台硬件资源进行CPU密集型嵌入式ML推理。 目录 摘要1 1PSoC™EdgeMCU3 2Ethos™-U55NPU4 2.1使用Ethos™-U55NPU的优点5 2.1.1ML性能提升5 2.1.2CPU负荷率6 2.1.3功耗7 2.2Ethos™-U55NPU加速流程7 3ModusToolbox™8 3.1ModusToolbox™ML9 3.2ModusToolbox™ML软件架构10 3.3运行时软件流程11 3.4Cortex®-M55CPU与Ethos™-U55NPU通信12 3.5工具13 3.5.1ML配置程序13 3.5.2MLCoreTools13 3.5.3Vela编译器13 4ML应用14 5结语15 参考文献16 1PSoC™EdgeMCU PSoC™EdgeMCU是一个高性能、低功耗MCU产品系列,这些产品专为提升计算性能、人机界面(HMI)、机器学习(ML)、增强传感、实时控制和低功耗应用而设计。 这个产品系列中的双CPU微控制器都具备神经网络协处理器、DSP功能,并支持高性能内存扩展能力(OSPl)、可进行高性能模数转换的低功耗模拟子系统和低功耗比较器等。这些产品还提供了物联网连接、通信接口、可编程模拟和数字模块,以及音频和图形模块等。 ModusToolbox™开发环境包括可安装的SDK和库、Arm®行业标准工具、RTOS支持以及性能稳健且易于使用的ML和HMI软件和工具。支持的功能包括安全、通信和控制以及DSP功能。多域架构实现了细粒度功耗优化以及动态频率和电压按比例调节。 PSoC™Edge的常开域模块支持语音识别、触摸唤醒、电池监测和其他传感应用。提供这些功能仅需极低功耗。 PSoC™Edge高性能域系统级架构如图1所示。 图1PSoC™Edge高性能域系统架构 2Ethos™-U55NPU Ethos™-U55是第一代与Cortex®-M处理器兼容的microNPU。Ethos™-U55可支持以前不可能实现的新一代TinyML应用。使用它,仅需很小芯片面积和很低功耗即可实现神经网络加速推理计算。相比于单独使用Cortex®-M处理器,Cortex®-M55和Ethos™-U55组合起来可将ML性能提升至最高400倍。 凭借其内置Helium矢量处理扩展,Cortex®-M55能够在嵌入式微控制器平台上运行ML模型,而通过与Ethos™-U55microNPU集成,它还可以提供比前几代Cortex®-M处理器系列更出色的ML性能。采用相同软件堆栈的Ethos™-U55可将Cortex®-M55系统的ML性能提高至最多30倍。 图2所示为Ethos™-U55系统架构图 图2Ethos™-U55系统架构 Ethos™-U55NPU亮点概览: -内存占用空间小且效率最高 -集成可配置MAC引擎(32位、64位、128位、256位),可满足卷积、深度池 化、矢量乘积以及最大池化所需的操作等要求。PSoC™Edge为Ethos™-U55配置了128位MAC -权重解码器和DMA用于动态权重解压缩 -支持用于模型优化的离线工具 -支持最常见的ML网络操作,包括CNN和RNN,并可灵活支持未来的ML创新 -中央控制(CC)执行工作单元队列并调度至DMA控制器、权重解码器、MAC单元和输出单元 -输出单元支持激活函数,包括:ReLU、ReLU1、ReLU6、LeakyReLU、tanh、sigmoid和可配置查找表(LUT) -通过开放的Q-Channel从端口支持高级时钟和功率门控 2.1使用Ethos™-U55NPU的优点 在PSoC™Edge平台中使用Ethos™-U55NPU结合Cortex®-M55可实现: -更出色的ML性能 -更低功耗 -节省Cortex®-M55CPU时钟周期用于其他任务,以便实现更复杂的ML应用以关键字识别(KWS)场景的ML应用为例,展示在系统中使用Ethos™-U55NPU带来的性能提升。 2.1.1ML性能提升 图3所示为Ethos™-U55NPU结合Cortex®-M55CPU带来的性能提升。数据来自关键字识别(KWS)应用测试。 图3N55NPU的ML性能比较 图中比较了单独的Cortex➅-M4、使能TCM前后的Cortex➅-M55以及Cortex➅-M55结合Ethos™-U55NPU实现的性能。如图所示,相比于Cortex➅-M4MCU,具备Helium扩展指令集的Cortex➅-M55可以为ML应用提供稍好性能。然而,将Cortex➅-M55与Ethos™-U55NPU相结合,则可以大幅增强系统的ML性能,为开发基于嵌入式平台的复杂的ML应用创造了条件。 2.1.2CPU负荷率 为系统配置一颗Ethos™-U55NPU,可以大大降低Cortex➅-M55CPU的负荷率并提升其性能。由此节省的CPU资源可以用于其他任务,从而支持在PSoC™Edge平台上实现更复杂的ML应用。 图4所示为Cortex➅-M55CPU在配置Ethos™-U55前后的情况下用于关键字识别 (KWS)应用时的占用率。 图4配置Ethos™-U55NPU前后时的CPU负荷率对比 2.1.3功耗 除提升性能之外,通过配置Ethos™-U55NPU来实现NN加速的同时,还可以降低 Cortex➅-M55CPU负荷率,从而大幅优化功耗。 2.2Ethos™-U55NPU加速流程 这个流程从将要训练或获取待加速的TensorFlow模型开始。将模型量化为8位整数格式,并转换为标准TensorFlowLite格式。 图5所示为通用ML模型优化流程: 图5适用于Ethos™-U55的通用ML模型优化流程 Arm➅提供的NN优化工具(Vela编译器)读取TensorFlowLite文件作为输入并进行格式转换,以使之准备就绪进行部署。TensorFlowLiteMicro(TFLM)运行环境被创建,以便在嵌入式设备的局限范围内执行。在主机上离线创建的TensorFlowLite平面文件(平面缓冲区格式)将被部署到目标设备上。这个平面文件载明了哪些神经网络层在Ethos™-U55上执行,哪些神经网络层仍在Cortex➅-M处理器上执行。Ethos™-U55支持的神经网络层在它上面实现加速运算,而其余的神经网络层则保留在Cortex➅-M处理器上执行。如果有相应的内核可供使用,可通过CMSIS-NN软件库加速在Cortex➅-M处理器上执行的神经网络层,否则,就使用TensorFlowLiteMicro参考内核。 3ModusToolbox™ ModusToolbox™软件提供了一个现代的可扩展开发环境,可支持各类型英飞凌微控制器,包括PSoC™Arm➅Cortex➅微控制器以及多种不同的英飞凌连接方案。 ModusToolbox™软件提供了一系列开发工具、库和嵌入式运行环境资源,其架构化设计可提供灵活、全面的开发体验。 运行环境软件包括中间件、设备驱动程序和代码示例,通过大量GitHub存储库提供。英飞凌开发者中心提供的安装包,包含了支持Windows、Linux和macOS的开发工 具。这些桌面应用可用于创建新的嵌入式应用、管理软件组件、配置设备外设和中间件,还包括用于编译、编程和调试的嵌入式开发工具。ModusToolbox™开发工具直接与可用的运行时软件库对接,便于轻松获得最新开发资源。 从英飞凌开发者社区,可以轻松访问社区论坛、知识型文章和技术类博客文章。可增强ModusToolbox™开发体验的其他资源包括,开发工具和运行时软件的全面的技术文档、详细的培训和教程视频等。 IDE选项: -适用于ModusToolbox™的EclipseIDE -微软VisualStudioCode -IAREmbeddedWorkbench -Arm➅μVision➅ 编译器选项: -GNU -IAR -Arm➅ 调试选项: -SeggerJ-Link -英飞凌MiniProg4 -IARI-jet -Arm➅ULINK™ 3.1ModusToolbox™ML 适用于机器学习的ModusToolbox™可满足三类主要的机器学习产品制造商的需求: -使用自有模型 -训练自有模型 -购买自有模型 借助ModusToolbox™机器学习(ML),用户可以在英飞凌MCU上快速评估和部署ML模型。ModusToolbox™ML经专门设计,可与ModusToolbox™生态系统无缝协作,并且可以添加到现有项目中,以便在低功耗边缘设备上执行推理。 适用于机器学习的ModusToolbox™还集成了合作伙伴解决方案,通过 ModusToolbox™和FriendsEcosystem将英飞凌软件和合作伙伴软件的优势结合起来。合作伙伴提供了易于使用的AutoML训练平台,以便开发人员专注于数据和用例,而不是传统ML训练过程中繁重的基础设施要求和学习曲线。 合作伙伴解决方案可以实现: -采集数据和打标签 -云端训练基础设施 -轻松集成 -针对嵌入式性能进行了优化 3.2ModusToolbox™ML软件架构 图6所示为ModusToolboxML环境的各种组件和软件库。 图6ModusToolbox™ML软件组件 ModusToolbox™ML提供的一系列功能,有助于在PSoC™平台无缝进行深度学习模型部署和验证。这些功能包括: -适用于微控制器的TensorFlowLite,包括解释器推理和无解释器推理 -支持.tflite和.H5模型格式 -常用NN内核:MLP、GRU、Conv1d、Conv2d、LSTM -辅助NN内核:压平层、丢弃层、重塑层、输入层 -激活函数:relu、softmax、sigmoid、线性、tanh -输入数据量化级: -32位浮点 -16/8位整数 -NN权重量化级: -32位浮点 -16/8位整数 -回归数据评估 -周期和内存估算 -基于PC的推理引擎 -基于目标设备的推理引擎(经优化) 3.3运行时软件流程 模型准备、优化、下载到设备以及在设备上执行的软件流程如图7所示。 图7软件堆栈及运行流程图 运行时软件堆栈由以特定方式相互作用的组件构成。 -用户应用 用户应用在执行模型推理时运行必要的功能并调用适用于微控制器的TensorFlowLite (TFLM库)。 -适用于微控制器的TensorFlowLite TFLM框架被编译成C++库,其中包含优化模型副本以及各种参考内核和CMSIS- NN内核版本。然后,用户应用使用这个库来执行推理。在推理过程中,按一次一个运算符对模型进行解析并执行相应的内核。Vela编译的子图表示为特殊自定义运算符的实例,其关联“内核”直接将关联的U55指令序列和关联的Tensor数据传送给Ethos™-UNPU驱动程序。 -参考内核 包含了一组适用于TFLM框架中的所有运算符的内核。 -CMSIS-NN内