一 基本网络层数学模型

输入特征图尺寸为N*H*L,卷积计算通过M个尺寸为K*K*N的3维卷积核完成,每个卷积核在输入特征图上以S为步长滑动并进行3维卷积计算,最终生成尺寸为R*C*M的输出特征图。

                                                CNN中的卷积层计算

​​​​​​​        ​​​​​​​        ​​​​​​​卷积层计算伪代码

二 数据复用

1、输入数据复用

输入数据复用对输入缓存具有最少的访问次数,其分为3个步骤:①计算核心把输入特征图读入局部输入寄存器;②计算核心充分复用这些输入数据,更新输出缓存中的所有相关的输出部分和;③更新后的输出部分和会重新写会输出缓存。当新的输入数据被读入计算核心时会重复上述3个步骤。

2、输出数据复用

输出数据复用对输出缓存具有最少的访问次数,其分为3个步骤:①计算核心把输入特征图的各通道读入局部的输入缓存器;②存储在计算核心输出寄存器中的输出部分和会被充分复用,以完成3为卷积通道方向上的完全累加;③最终的输出特征图会在池化之后再写入输出缓存。计算过程中不会再有其他对输出缓存的访问,对于剩余的输出特征图计算,会重复上述3个步骤。

3、权重数据复用

        权重数据复用对权重具有最少的访问次数,其分为3个步骤:①计算核心读取Tn个输入特征图分块到局部的输入寄存器;②计算核心利用这些输入数据更新Tm个通道的输出部分和;③存储在权重缓存中的Tm个Tn通道的卷积核权重被充分复用,以更新存储在输出缓存中的Tm个通道的R*C输出部分和。重复上述3个步骤以完成整个卷积层的全部计算。

4、混合数据复用

该数据复用模式,将根据每一层单独分配针对该层最优的数据复用模式。因此涉及寻找最优的数据复用模式,需要探索各种分块参数下的不同模式的访存能耗。

三 并行计算

尽管神经网络中的计算具有很强的可并行性,但是由于受到计算资源和存储资源的限制,往往不能全部同时映射到单个芯片上,因此需要设计一些调度方法将神经网络映射到计算芯片的计算阵列上依次执行。

1、并行计算

探索计算单元PE的并行性,获取高性能。

(1)像素并行性

分为卷积窗口内部并行/卷积窗口间并行

(2)输入通道并行性

(3)输出并行性

2、循环展开

通过最大化在PE和片上缓存上的数据复用,获取高能效。

对于某个神经网络加速,通常在有限的片外传输带宽限制下,通过高效的数据调度,驱动尽可能多的计算单元,以实现最高的有效吞吐量,同时要利用数据共享的特性,提高数据重用率,尽可能提升NPU吞吐量和能效。

(1)循环交换(Loop Interchange):优化数据复用模式,减少访存次数

(2)循环分块(Loop Tiling):优化卷积映射方法,提高计算资源利用率

为复用输入特征图,卷积核维度循环须在最内层:即要确定R/C/M/N的展开顺序

先计算输出通道循环M:要求更新权重,重利用输入特征图-时间维度复用输入像素

先计算输入通道循环N:要求更新权重和输入像素

先计算输出特征图高R和宽C:要求更新输入像素,重利用权重-时间维度复用权重

四 应用案例分析

待补充

神经网络硬件加速器-模型分析相关推荐

  1. 卷积神经网络(CNN)经典模型分析(一)

    CNN经典模型分析

  2. 神经网络硬件加速器-架构篇

    背景         人工智能(Artifical Intelligence),是研究.开发用于模拟.延伸和扩展人类智能的理论.方法.技术及应用系统的一门科学技术.人工智能的本质是对人类思维过程的模拟 ...

  3. 【Pytorch神经网络实战案例】40 TextCNN模型分析IMDB数据集评论的积极与消极

    卷积神经网络不仅在图像视觉领域有很好的效果,而且在基于文本的NLP领域也有很好的效果.TextCN如模型是卷积神经网络用于文本处理方面的一个模型. 在TextCNN模型中,通过多分支卷积技术实现对文本 ...

  4. 如何设计神经网络的硬件加速器

    设计神经网络的硬件加速器的方法有很多种,具体的方法取决于你的应用场景以及你希望达到的性能目标.一些常用的方法包括: 使用专门设计的神经网络处理器,比如 Google 的 Tensor Processi ...

  5. 基于FPGA的深度卷积神经网络的加速器设计

    英文论文链接:http://cadlab.cs.ucla.edu/~cong/slides/fpga2015_chen.pdf 翻译:卜居 转载请注明出处:http://blog.csdn.net/k ...

  6. 优化基于FPGA的深度卷积神经网络的加速器设计

    英文论文链接:http://cadlab.cs.ucla.edu/~cong/slides/fpga2015_chen.pdf 翻译:卜居 转载请注明出处:http://blog.csdn.net/k ...

  7. 硬件加速器为人工智能应用服务

    硬件加速器为人工智能应用服务 Hardware accelerators serve AI applications 硬件加速器(Hardware accelerators)是用于执行特定任务(如对对 ...

  8. 人工神经网络-2020-第十四周-人工神经网络硬件实现-备课

    ➤01 人工神经网络硬件实现 Chapter Code: H01. : Introduction 0.早期硬件 CC:H011: 这部分的内容来自于最早清华大学阎平凡教授所著的<人工神经网络–模 ...

  9. 人工神经网络的典型模型,人工神经网络模型定义

    神经网络BP模型 一.BP模型概述误差逆传播(ErrorBack-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型. PallWerbas博士于1974年在他 ...

最新文章

  1. MySQL添加字段和修改字段的方法
  2. 理论+实践轻松掌握nohup java -jar xxxx.jar /dev/null 21 意义
  3. 【faster-rcnn】训练自己的数据集时的坑
  4. DBMS_SQL包使用
  5. ftp 速度_如何评价我的骑行功率(FTP)?
  6. 前端开发必须说的那些事之——同源策略(same origin policy)
  7. NET牛人应该知道些什么
  8. php 进程管理及操作
  9. OC语言——————表视图
  10. 电脑模拟收银机_模拟超市收银系统
  11. intellij idea 导出可执行jar
  12. 一篇文章理解Ext4文件系统的目录
  13. Week2-09-Rabbit 类数组实现具体方法
  14. JS,等额本息,等额本金计算器
  15. 详细 C语言自增自减运算符区分 ++n和n++
  16. PC端 kindle 导入 电子书
  17. html5两个标签重叠,css中两个盒子如何重叠?
  18. java使用阿里云发送通知短信
  19. ACM算法训练赛——STL(完结)
  20. opencv画框显示python_python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框...

热门文章

  1. CWOW一区,没落之最(没有之一)的服务器:藏宝海湾
  2. 内存Webshell马详解
  3. chrome按F12后的Elements摸元素出现紫色箭头是什么
  4. PlentyOfFish.com .NET网站的又一传奇(转)
  5. 计算机大学实践报告范文,大学生计算机教学社会实践报告范文
  6. 《天龙八部3D》中Unity使用介绍
  7. RateLimiter google限流组件试析(SmoothBursty/SmoothWarmingUp)
  8. easyUI中dialog弹出框中数据加载不出来
  9. 计算机调剂怎么准备复试,终于明白考研调剂复试如何准备
  10. Alcohol 120% v2.0.0 1331 (支援+蓝光+Win7)2010破解中文零售版