米尔科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

米尔手把手教您如何使用CMSIS-NN神经网络内核提升微控制器效率

文章来源:米尔科技 发布日期:2021.6.18 浏览次数:550
微控制器(MCU)是一种微型计算机,它为我们科技世界提供了源源不断的动力。从家用电器到健身跟踪器,每年都有300多亿台搭载MCU的设备被生产出来。无论你是在家里亦或是在路上开车,许许多多的MCU都在围绕着你来工作。通过TensorFlow Lite forMicrocontrollers(TFLM),开发者们可以部署TensorFlow到各类嵌入式设备,实现全新形式的智能设备。


众所周知,MCU的特点是低成本、低功耗,这就意味着,这些MCU只拥有很小的内存以及较小的运算能力,一个传统MCU只拥有几百KB的内存,而一个32bit MCU运算能力一般小于100MHZ。但随着TFLM技术在机器学习方面的提高,在这些设备上运行神经网络已经成为可能。因为MCU的运算资源非常珍贵,所以我们编写程序时优化是非常重要的,这意味着充分利用微处理器硬件的特性,这需要仔细调整应用程序代码。


在市面上许多流行的MCU采用了ARM Cortex-M架构,该架构在32bit MCU行业里处于的绝对的龙头地位,拥有470多亿的装载量。ARM CMSIS-NN开源库提供了通用神经网络函数的优化实现,最大限度地提高了Cortex-M处理器的机器学习的性能。


ARM工程师们与TensorFlow团队紧密合作开发了搭载CMSIS-NN库的 TensorFlow Lite内核的优化版本,在Cortex-M系列MCU上提供极快的性能。使用TensorFlow Lite的开发者们只需使用最新版本的库,就可以使用这些优化的内核,而无需额外工作量。Arm已经在开放的源码中进行了这些优化,如今开发者们可以免费使用它们。


下图是使用和不使用CMSIS-NN的性能分析对比图,在同一个MCU上使用了CMSIS-NN的内核性能明显强于普通内核的性能。



我们可以预见神经处理单元(NPU)与微处理器(MCU)相结合的方案设备将会释放巨大市场潜力。NPU处理器是专门为嵌入式设备设计的一款可以提高神经处理性能的一款CPU。一款搭载Ethos-U55和Cortex-M55的设备,与以前的设备相比机器学习性能足足提高了480倍。


接下来我们将会搭建一个FVP_MPS2_Corstone_SSE-300的仿真平台。我们将在脱离实际硬件设的情景下,模拟运行使用了CMSIS-NN的情景。


1、安装MDK-ARM V5.34版本软件。


2、下载安装FVP_MPS2_Corstone_SSE-300,下载链接如下,将下图所示的FVP均下载。


https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps



3、请到如下链接,下载demo。将下图所示的红框的内容均下载。


https://github.com/MDK-Packs/tensorflow-pack/releases



4、然后打开Keil软件,打开MDK Pack Installer,菜单栏File->Import将第3步下载的pack包均导入Keil。然后还得下载对应BSP包,如下图所示红框内容。

但因为demo使V2M_MPS3_SSE_300_BSP包为1.1.0版本,而软件版本并未有最新版本的该BSP包,所以并不能直接安装使用,但我们可以到官网上下载最新版本的BSP包。链接如下。

https://www.keil.com/dd2/Pack/




5、将第3步下载的Source Code解压出来,该压缩包内包含了工程demo,解压后打开工程。


6、打开工程后,需配置FVP,请按下图步骤操作。




在command中第2步中下载安装的FVP的实际路径



7、进入调试模式,尽情阅览代码。


本文来自米尔科技,原文地址: http://www.myir-tech.com/resource/608.asp,转载请注明出处。