0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CMSIS-NN内核的神经网络推理运算 对运行时间/吞吐量和能效有显著提升

pmkA_arm_china 2018-01-31 11:29 次阅读

目前,在许多需要在本地进行数据分析的“永远在线”的物联网边缘设备中,神经网络正在变得越来越普及,主要是因为可以有效地同时减少数据传输导致的延时和功耗。而谈到针对物联网边缘设备上的神经网络,我们自然会想到Arm Cortex-M系列处理器内核,那么如果您想要强化它的性能并且减少内存消耗,CMSIS-NN就是您最好的选择。基于CMSIS-NN内核的神经网络推理运算,对于运行时间/吞吐量将会有4.6X的提升,而对于能效将有4.9X的提升。

CMSIS-NN库包含两个部分:NNFunction和NNSupportFunctions。NNFunction包含实现通常神经网络层类型的函数,比如卷积(convolution),深度可分离卷积(depthwise separable convolution),全连接(即内积inner-product),池化(pooling)和激活(activation)这些函数被应用程序代码用来实现神经网络推理应用。内核API也保持简单,因此可以轻松地重定向到任何机器学习框架。NNSupport函数包括不同的实用函数,如NNFunctions中使用的数据转换和激活功能表。这些实用函数也可以被应用代码用来构造更复杂的NN模块,例如,长期短时记忆(LSTM)或门控循环单元(GRU)。

对于某些内核(例如全连接和卷积),会使用到不同版本的内核函数。Arm提供了一个基本的版本,可以为任何图层参数“按原样”通用。我们还部署了其他版本,包括进一步的优化技术,但会对输入进行转换或对层参数有一些限制。理想情况下,可以使用简单的脚本来分析网络拓扑,并自动确定要使用的相应函数。

基于CMSIS-NN内核的神经网络推理运算 对运行时间/吞吐量和能效有显著提升

我们在卷积神经网络(CNN)上测试了CMSIS-NN内核,在CIFAR-10数据集上进行训练,包括60,000个32x32彩色图像,分为10个输出类。网络拓扑结构基于Caffe中提供的内置示例,具有三个卷积层和一个完全连接层。下表显示了使用CMSIS-NN内核的层参数和详细运行时结果。测试在运行频率为216 MHz的ARM Cortex-M7内核STMichelectronics NUCLEO-F746ZG mbed开发板上进行。

基于CMSIS-NN内核的神经网络推理运算 对运行时间/吞吐量和能效有显著提升

整个图像分类每张图像大约需要99.1毫秒(相当于每秒10.1张图像)。运行此网络的CPU的计算吞吐量约为每秒249 MOps。预量化的网络在CIFAR-10测试集上达到了80.3%的精度。在ARM Cortex-M7内核上运行的8位量化网络达到了79.9%的精度。使用CMSIS-NN内核的最大内存占用空间为〜133 KB,其中使用局部im2col来实现卷积以节省内存,然后进行矩阵乘法。没有使用局部im2col的内存占用将是〜332 KB,这样的话神经网络将无法在板上运行。

为了量化CMSIS-NN内核相对于现有解决方案的好处,我们还使用一维卷积函数(来自CMSIS-DSP的arm_conv),类似Caffe的pooling和ReLU来实现了一个基准版本。对于CNN应用,下表总结了基准函数和CMSIS-NN内核的比较结果。CMSIS-NN内核的运行时间/吞吐量比基准函数提高2.6至5.4倍,能效提高也与吞吐量的提高相一致。

基于CMSIS-NN内核的神经网络推理运算 对运行时间/吞吐量和能效有显著提升

高效的NN内核是充分发挥Arm Cortex-M CPU能力的关键。CMSIS-NN提供了优化的函数来加速关键的NN层,如卷积,池化和激活。此外,非常关键的是CMSIS-NN还有助于减少对于内存有限的微控制器而言至关重要的内存占用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1305

    浏览量

    39819
  • 神经网络
    +关注

    关注

    42

    文章

    4538

    浏览量

    98424
  • 物联网
    +关注

    关注

    2860

    文章

    41250

    浏览量

    357362

原文标题:想让你的微控制器效率提升5倍吗?

文章出处:【微信号:arm_china,微信公众号:Arm芯闻】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    发布MCU上跑的轻神经网络包 NNoM, 让MCU也神经一把

    Spotting)使用运动传感器识别活动状态 (Human Activity Recognition)神经网络控制系统 (替代PID等传统控制方法)图像处理 (带专用加速器的 MCU)...它轻但不低能, 它支持
    发表于 05-01 19:03

    CMSIS-NN神经网络内核助力微控制器效率提升

    自然会想到Arm Cortex-M系列处理器内核,那么如果您想要强化它的性能并且减少内存消耗,CMSIS-NN就是您最好的选择。基于CMSIS-NN内核
    发表于 07-23 08:08

    如何设计BP神经网络图像压缩算法?

    处理的运算量和数据吞吐量。图像压缩是信息传输和存储系统的关键技术,然而我们该如何进行FPGA设计,以实现给定的功能已经成为神经网络应用的关键呢?
    发表于 08-08 06:11

    CMSIS-NN神经网络内核可以让微控制器效率提升5倍是真的吗?

    全新CMSIS-NN神经网络内核让微控制器效率提升5倍
    发表于 03-15 06:55

    可分离卷积神经网络在 Cortex-M 处理器上实现关键词识别

    的架构成为可能,甚至在资源受限的微控制器器件中也运行。在 Cortex-M 处理器上运行关键词识别时,内存占用和执行时间是两个最重要因素,在设计和优化用于该用途的
    发表于 07-26 09:46

    DSP数字信号处理和CMSIS-NN神经网络教程

    之后,开启第2版DSP数字信号处理和CMSIS-NN神经网络教程,同步开启三代示波器。软件:1、开发板预装出厂程序,各种外设驱动包全做好了,可以检测全部硬件功能...
    发表于 08-04 06:59

    图像预处理和改进神经网络推理的简要介绍

    提升识别准确率,采用改进神经网络,通过Mnist数据集进行训练。整体处理过程分为两步:图像预处理和改进神经网络推理。图像预处理主要根据图像的特征,将数据处理成规范的格式,而改进
    发表于 12-23 08:07

    充分利用Arm NN进行GPU推理

    计算(GPGPU),尤其是用作将运算符实现为计算着色器的推理引擎的后端。GPU推理不仅具有优于CPU推理的性能,还具有其他优势。在移动CPU上执行深度
    发表于 04-11 17:33

    使用Streamline分析在Linux上运行的Arm NN机器学习应用程序

    讨论的示例是在 Arm 上运行 ML 推理的 Linux 应用程序。我们之前已经在 MNIST 数据集上训练了一个神经网络 来识别手写数字。使用 Arm NN 和 Streamline
    发表于 08-11 15:46

    AT32讲堂016 | AT32 MCU DSP使用案例和网络神经算法CMSIS-NN案例

    ()参考AT32_DSP_DEMOprojectat_start_f403aexamples5_11_arm_variance_exampleCMSIS NN with DSP介绍本用户手册介绍了CMSIS NN软件库,这是一个
    发表于 08-16 19:40

    ARM Cortex-M系列芯片神经网络推理CMSIS-NN详解

    1、ARM Cortex-M系列芯片神经网络推理CMSIS-NN详解CMSIS-NN是用于ARM Cortex-M系列的芯片的神经网络
    发表于 08-19 16:06

    在Linux上使用Arm NN分析和优化运行推理的机器学习应用程序的步骤

    CPU上运行单个推理;在时间轴视图的详细信息面板中可以选择“Arm NN 时间线”以显示有关 NN
    发表于 09-27 14:24

    使用PyArmNN和Debian软件包的Wav2Letter自动语音识别教程

    Arm NN库为Arm硬件优化神经网络。当在Arm Cortex-A上运行时,与其他框架相比,Arm NN提供了显著的性能
    发表于 08-10 07:38

    CMSIS-NN版本转换Arm Cortex-M的神经网络:r0p0指南

    2. 概览 本指南向您展示了如何将神经网络从任何框架转换成一个基于 Arm Cortex-M-M 装置的实施工具, 使用 Arm CMSIS- NN 库。 此教程用于不再支持的 CMSIS
    发表于 08-11 07:06

    事隔五年之后,开启第2版DSP数字信号处理和CMSIS-NN神经网络教程,同步开启三代示波器,前50章发布(2021-11

    事隔五年之后,开启第2版DSP数字信号处理和CMSIS-NN神经网络教程,同步开启三代示波器,前50章发布(2021-11-02)
    发表于 11-26 10:36 0次下载
    事隔五年之后,开启第2版DSP数字信号处理和<b class='flag-5'>CMSIS-NN</b><b class='flag-5'>神经网络</b>教程,同步开启三代示波器,前50章发布(2021-11