一、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相关推荐

  1. MICRO 2020 论文阅读笔记:CATCAM: Constant-time Alteration Ternary CAM with Scalable In-Memory Architecture

  2. 【自监督论文阅读笔记】Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture

    2023 Abstract 本文展示了一种学习高度语义图像表示的方法,而不依赖于手工制作的数据增强.本文介绍了基于图像的联合嵌入预测架构 (I-JEPA),这是一种用于从图像进行自监督学习的非生成方法 ...

  3. 《Segment as Points for Efficient Online Multi-Object Tracking and Segmentation》论文阅读笔记

    <Segment as Points for Efficient Online Multi-Object Tracking and Segmentation>论文阅读笔记 1.介绍 2.相 ...

  4. An efficient augmented Lagrangian method with applications to total variation minimization论文阅读笔记

    An efficient augmented Lagrangian method with applications to total variation minimization论文阅读笔记 论文信 ...

  5. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

  6. PointConv论文阅读笔记

    PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...

  7. 对抗训练-smart 论文阅读笔记

    对抗训练-smart 论文阅读笔记 SMART: Robust and Efficient Fine-Tuning for Pre-trained NaturalLanguage Models thr ...

  8. 论文阅读笔记《USAC: A Universal Framework for Random Sample Consensus》

      本文总结了RANSAC算法的流程与存在的问题,整理了近几年基于RANSAC提出的改进算法,并整合各个算法的优势,提出一个统一的RANSAC算法框架.因此本文也可以看做是一片关于RANSAC算法的论 ...

  9. 点云配准论文阅读笔记--(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration

    目录 点云配准系列 写在前面 Abstract摘要 1 Introduction引言 2 Background研究背景 RANSAC Randomized Alignment 3 Approximat ...

最新文章

  1. python multiprocessing lock_python多进程Lock锁
  2. 【网络安全】一次应急实战经验思路分享
  3. 好奇!仅 13kB 大小的游戏,源码长啥样?
  4. java去除json 转移,Spring MVC返回的json去除根节点名称的方法
  5. 如何在Ubuntu里安装Helm
  6. html中logo不变形,CSS3如何实现LOGO中的文本变形动画
  7. 【中级04】Java 虚拟机 Runtime Data Areas以及垃圾回收
  8. 用1000W破解字典破解pdf文档(提供1000W破解字典)
  9. 随机森林:对UCI数据集的分类实现
  10. 泛型编程和元编程概念(先学泛型编程再学元编程)
  11. 中国行政区划代码,包括五级行政区划详细代码,县级以上区划地理围栏
  12. 360浏览器Linux版内核,360浏览器推出Linux版下载,主要特性解说
  13. 对强化学习理解及其与有监督学习和无监督学习的比较
  14. 【论文解读】(2019-EMNLP)Tackling Long-Tailed Relations and Uncommon Entities in Knowledge Graph Completi
  15. 除尘器选型需要考虑的因素
  16. web页面性能优化及SEO优化
  17. 【Git从青铜到王者】第四篇:Git的分支与合并
  18. 笔记:《高效能人士的七个习惯》第九章 习惯六 统合综效——创造性合作的原则
  19. java sub函数,请问Sub子过程与Function函数过程有什么区别?
  20. Socks5代理和IP代理

热门文章

  1. 教你如何解决网页不能复制粘贴的问题
  2. 第七讲 入侵检测技术
  3. Lucene架构学习
  4. 大数据里细看苏州旅游新变化
  5. 金融科技直播间|万里数据库在金融核心业务的实践分享
  6. backtrack工具列表及介绍
  7. mybatis-puls条件查询、分页功能
  8. linux查看目录acl权限,ACL权限详解
  9. 黄聪:C# 写Excel 代码
  10. Python 中的for-else用法