论文阅读笔记5-An Asynchronous Energy-Efficient CNN Accelerator with Reconfigurable Architecture
一、Title
An Asynchronous Energy-Efficient CNN Accelerator
with Reconfigurable Architecture
二、Abstract & Introduction
why?
卷积神经网络在计算机视觉领域被广泛使用,并且展示了它在图像分类、目标检测以及视频监控等方面的巨大优势。传统上 ,卷积神经网络的推断过程在CPU和GPU上完成,但是,CPU计算资源有限,并行度不够,而GPU虽然在计算方面强于CPU,但是GPU有着极高的功耗,ASIC能获得最大的能效,但是ASIC灵活性不够,一旦流片无法更改,因此需要在灵活性和能效上做一个权衡。
how?
FPGA显然是一个很好的兼顾灵活性和能效的工具,且FPGA具有可重构的特性,能适应日新月异变化的深度学习算法。
本文中,作者提出了一个基于FPGA的可重构可配置加速器,它采用异步电路,包含6个计算核,每个核由5x5个PE构成,在这个加速器中,作者采用了一种叫做convolution-and-pooling-integrated的计算模式,大大降低了对片外DRAM的访问,显著降低了系统的功耗。
result?
作者在Xilinx VC707上实现了该加速器,并用LeNet-5进行了测试,实验发现,异步计算核的动态功耗比同步的降低了84%,加速器的效率达到了30.03GOPS/W,是前人工作的2.1倍。
三、Methods
A.Design of the CNN Accelerator
1.Architecture of the accelerator
如图1是加速器的总体架构,输入数据存在片外DRAM中,来自控制模块的配置信息会被发送到computing array,这样,激活函数、池化运算、以及数据流动的方向就会被确定。computing array主要负责卷积和池化运算,运算结果则被写回DRAM。
2.Design of the computing core
如图所示,这是Computation core的结构,每个核由5x5个PE单元组成,每个PE,包括一个寄存器和一个乘法器,因此它同时具有乘法运算和数据缓存的功能,此外,每一个PE都能接收来自周围PE的数据(上,下,左,右),这就使得数据重用成为了可能。每个PE的数据大小和数据路径都能由配置信息配置,各个PE之间既能一起工作,也能独立工作,在本文的设计中,作者采用异步电路,通过握手协议来进行各个PE之间的协调,这种“事件驱动"的异步握手协议,使得当一个PE完成自己的工作并没有继续收到request信号时,可以完全关闭,从而降低了系统的动态功耗。当所有PE计算都完成时,这些结果就被相加求和,作为输出送入下一个池化层。
3.Design of the PE.
如图4(a),本文采用的是两相异步握手协议,图4(b)和4©分别是两相握手协议和四相握手协议的示意图,两相握手协议中,一个跳变沿就表示一个事件,而四相握手协议中,高电平才表示一次req信号,因此握手完成后还需要将Req和Ack信号拉低,因而可以知道,两相握手协议在速度和功耗上都比四相握手协议更具优势,这也是本文采取两相握手协议的原因。
图3是Click element的示意图,每当有一个request信号到达时,Click element都会产生一个高电平的fire信号,用来使能FF或者Latch.
图5是具体的电路图,三个串行连接的Click形成了一个三阶段的异步流水线。若没有request信号,那么整个电路都是关闭的,没有任何动态功耗。当一个request信号到来时,配置信息会在fire1为高时被写入DFF1,当fire2信号为高时,输入数据(来自上下左右或者local_in)会被写入DFF2,并且同时将该数据送入乘法器和权重相乘,最后,当fire3为高时,输入数据会被写入DFF3以供之后相邻的PE重用,而乘法结果也被相应的寄存器寄存。
4.Design of the pooling unit (PU)
如图6,是池化层的计算单元电路图。卷积电路的所有PE的req输出信号都被连接到Muller C,以用来检测卷积计算是否完成。激活函数、池化方式和池化大小都能动态配置,对于激活函数,ReLU很容易实现,但是对于Sigmoid和Tanh这种复杂函数,本文通过查找表来实现,这也加快了激活函数的计算速度。
B.The Convolution-and-Pooling-Inter grated Computing and Data Reuse Met hods
对于CNN加速器来说,对片外DRAM的频繁访问已经成为了加速器能耗优化方面的一个瓶颈。因此,本文提出了一种叫做Convolution-and-Pooling-Inter grated Computing的方法,并且进行了数据的复用,这些措施使得对片外DRAM的访问减少了88%,大大降低了加速器的功耗。
1.The convolution-and-pooling-intergrated computing
如图8所示,这里卷积核大小为2,池化窗口大小也是2。在传统的卷积计算中,四次卷积之后,我们得到的应该是A,B,C,D这四个输出神经元,但是池化运算所需要的是ABHG,因此,AB必须一直被存储直到HG也被计算完毕,但是在图8(b)的convolution-and-pooing-integrated computing中,由于卷积运算的顺序作了改变,ABHG是可以同时得到的,因此就省去了中间数据的存储。
2.The input data reuse
以图9为例,同样是2x2的卷积,卷积步长为1,那么可以发现,相邻的卷积窗口之间是存在数据重叠的,因此可以进行数据复用。
在这个加速器中,四个权重是分散在4个PE上,每个PE上的权重和相应的输入神经元相乘,最后四个PE的结果相加,便能得到一个输出神经元的部分和或者最终结果,即采用的是weight-stationary方式。
卷积运算四次后,会得到O1,O2,O3,O4四个值,从O1到O4所需的输入数据来看,并不需要完全从缓存中读取,例如O1到O2,左边两个PE所需的数据可以从它们右边邻近的PE得到,而右边两个PE所需的数据才需要从缓存中读取,O2到O3,O3到O4可类比分析。
表1展示了使用该方法前后每一层访问数据的次数。可以看到,未使用该方法之前,总的数据访问次数为66.4KB,而采用了作者提出的方法( integration computing and input data reuse)之后,访存次数减为7.8KB,减少了88%!而且对那些更加复杂的CNN来说,效果还会更加显著。
四、Experiments & Results
作者在Xilinx FPGA VC707上实现了修改过后的LeNet-5,并且为了进行比较,作者还实现了 一个采用同步电路的加速器,其他方面均不变。
实验结果表明,采用同步电路加速器的功耗为45.96mW,而异步的仅为7.25mW,该异步电路加速器的效率则达到了30.03GOPS/W,优于许多之前的工作,除此之外,10000张mnist手写体在我们的实验平台上进行了测试,错误率仅为2%。
五、Conclusion
懒得打字了,如下
论文阅读笔记5-An Asynchronous Energy-Efficient CNN Accelerator with Reconfigurable Architecture相关推荐
- MICRO 2020 论文阅读笔记:CATCAM: Constant-time Alteration Ternary CAM with Scalable In-Memory Architecture
- 【自监督论文阅读笔记】Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture
2023 Abstract 本文展示了一种学习高度语义图像表示的方法,而不依赖于手工制作的数据增强.本文介绍了基于图像的联合嵌入预测架构 (I-JEPA),这是一种用于从图像进行自监督学习的非生成方法 ...
- 《Segment as Points for Efficient Online Multi-Object Tracking and Segmentation》论文阅读笔记
<Segment as Points for Efficient Online Multi-Object Tracking and Segmentation>论文阅读笔记 1.介绍 2.相 ...
- An efficient augmented Lagrangian method with applications to total variation minimization论文阅读笔记
An efficient augmented Lagrangian method with applications to total variation minimization论文阅读笔记 论文信 ...
- 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation
论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...
- PointConv论文阅读笔记
PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...
- 对抗训练-smart 论文阅读笔记
对抗训练-smart 论文阅读笔记 SMART: Robust and Efficient Fine-Tuning for Pre-trained NaturalLanguage Models thr ...
- 论文阅读笔记《USAC: A Universal Framework for Random Sample Consensus》
本文总结了RANSAC算法的流程与存在的问题,整理了近几年基于RANSAC提出的改进算法,并整合各个算法的优势,提出一个统一的RANSAC算法框架.因此本文也可以看做是一片关于RANSAC算法的论 ...
- 点云配准论文阅读笔记--(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration
目录 点云配准系列 写在前面 Abstract摘要 1 Introduction引言 2 Background研究背景 RANSAC Randomized Alignment 3 Approximat ...
最新文章
- python multiprocessing lock_python多进程Lock锁
- 【网络安全】一次应急实战经验思路分享
- 好奇!仅 13kB 大小的游戏,源码长啥样?
- java去除json 转移,Spring MVC返回的json去除根节点名称的方法
- 如何在Ubuntu里安装Helm
- html中logo不变形,CSS3如何实现LOGO中的文本变形动画
- 【中级04】Java 虚拟机 Runtime Data Areas以及垃圾回收
- 用1000W破解字典破解pdf文档(提供1000W破解字典)
- 随机森林:对UCI数据集的分类实现
- 泛型编程和元编程概念(先学泛型编程再学元编程)
- 中国行政区划代码,包括五级行政区划详细代码,县级以上区划地理围栏
- 360浏览器Linux版内核,360浏览器推出Linux版下载,主要特性解说
- 对强化学习理解及其与有监督学习和无监督学习的比较
- 【论文解读】(2019-EMNLP)Tackling Long-Tailed Relations and Uncommon Entities in Knowledge Graph Completi
- 除尘器选型需要考虑的因素
- web页面性能优化及SEO优化
- 【Git从青铜到王者】第四篇:Git的分支与合并
- 笔记:《高效能人士的七个习惯》第九章 习惯六 统合综效——创造性合作的原则
- java sub函数,请问Sub子过程与Function函数过程有什么区别?
- Socks5代理和IP代理