前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ARM NEON卷积神经网络加速简介-技术创作101训练营

ARM NEON卷积神经网络加速简介-技术创作101训练营

原创
作者头像
fancyxu
修改2020-09-23 11:08:01
2.3K0
修改2020-09-23 11:08:01
举报
文章被收录于专栏:物联网学习

一、编写目的

该文档用作提供使用ARM-NENO技术在卷积神经网络上应用。

二、ARM-NEON与卷积神经网络

2.1 卷积神经网络

参考相关网站: http://cs231n.github.io/convolutional-networks/

卷积神经网络的计算主要包括大量的卷积核的乘法运算。为了加速乘法运算,可以使用ARM-NEON技术,比如ncnn就依据此类技术实现,除了ncnn外,ARM还提供了官方的基于NEON技术的计算库ARM Compute Library以及专为深度学习设计的ARM NN。根据实现方式分为以下两种:

  • ncnn:针对不同平台实现高效的几种卷积核(1x1/3x3/5x5/7x7)运算,以点乘为主(特别地,1x1的可以看做是gemm)。优点在于效率高,缺点在于通用性不强,专门面向深度学习。
  • GEMM(General Matrix Multiplication):实现通用的矩阵乘法运算,可参考类似openblas的实现过程。优点在于通用性好,缺点在于将卷积运算转换成矩阵乘法运算耗内存资源。

2.2 矩阵乘法计算

矩阵乘法通用易理解的表达如上图1所示,其中矩阵乘法在目前的基于CPU的架构中无法达到实时性的主要原因有:

  • 软件编写无法发挥硬件的计算能力
  • 硬件本身计算能力存在瓶颈
  • 算法对乘法计算要求较大

针对上述3个原因,可以思考的方法有三点:

  • 修改软件编程模型,使用汇编或者硬件原生支持的加速方法,比如ARM NEON提供的指令以及库
  • 更换硬件平台,提升硬件平台能力,比如FPGA、GPU等
  • 对计算进行优化,减少计算量(主要是减少乘法数量),比如Winograd变换(增加计算的复杂度),如图2所示
Figure 1. 矩阵乘法示意
Figure 1. 矩阵乘法示意
Figure 2. Winogard变换
Figure 2. Winogard变换

在不更换硬件平台的情况下,可以使用ARM NEON技术更好地发挥硬件性能。基于ARM NEON技术的矩阵乘法加速可以理解为利用矩阵乘法并行性,如图3所示。

Figure 3. 矩阵乘法并行性
Figure 3. 矩阵乘法并行性

2.3 卷积神经网络转换矩阵乘法

如果为了使用GEMM方法进行卷积神经网络加速,需要将卷积神经网络中的卷积层计算转换成矩阵乘法,然后利用GEMM进行加速,卷换过程如图4所示。

Figure 4. [卷积计算转换矩阵乘法](https://hal.inria.fr/inria-00112631/document)
Figure 4. [卷积计算转换矩阵乘法](https://hal.inria.fr/inria-00112631/document)

三、总结

通过ARM NEON技术进行卷积神经网络加速,可以采用的路径有:

1.参考2.3将卷积神经网络转换成矩阵乘法,然后参考openblas的实现过程,使用ARM提供的ACL库(ARM Compute Library)或者ARM NN实现。

2.如果是ncnn支持的网络模型,可以使用ncnn进行加速。如果不支持的网络模型,可以参考ncnn对于相关卷积计算的实现做个性化的应用开发。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、编写目的
  • 二、ARM-NEON与卷积神经网络
    • 2.1 卷积神经网络
      • 2.2 矩阵乘法计算
        • 2.3 卷积神经网络转换矩阵乘法
        • 三、总结
        相关产品与服务
        物联网
        腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档