A Novel FPGA Accelerator Design for Real-Time and Ultra-Low Power Deep Convolutional Neural Networks

Abstart

  卷积神经网络(CNNs)的深度学习算法需要高数据流和计算强度。对于实时工业应用,需要克服诸如高数据带宽要求和硬件平台上的功耗等问题。本文详细分析了CNN加速器中的数据依赖性,并提出了具体的流水线操作和数据组织方式,在FPGA上设计了一个高吞吐量CNN加速器。

1.Introduction

  卷积计算量很大,标准的卷积层是通过乘法累加(MAC)运算来实现的。例如在YOLO V2框架的前向推理过程中,92%的执行时间花费在MAC上。
  处理计算量大的网络可以使用GPU,尽管现代高端GPU在DNN性能上具有很高的计算吞吐量,但它也具有较高的功耗,并且与工作站协作的工作量太大,难以携带,降低了其在工业领域的实用性。FPGA是替代GPU的解决方案之一,它具有处理单元大、功耗低、可重构、便携等特点。
  但是FPGA也有缺点:与GPU不同,FPGA上的内存没有缓存结构,带宽比高端GPU旧两代(例如FPGA Arria 10上的DRAM是DDR3, GPU Titan X上的内存是GDDR5)。数据依赖和内存带宽等设计挑战使得它很难像高端GPU那样实时快速工作,特别是在低功耗设备上。此外,片上内存大小的限制也是FPGA的瓶颈。片内存储器和片外存储器(例如DRAM)之间的数据移动将引入大的功耗和延迟。
  本文主要研究点就是设计一款高吞吐量、低功耗、低延迟的基于FPGA的CNN加速器。主要内容包括:

  1. 详细分析了CNN加速器中的数据依赖性,提出了一种基于CNN的高吞吐量FPGA加速器。使用流水线的MAC操作结构来消除循环携带的数据依赖性。我们还提出了Zigzag提取单元来消除行数据的依赖性;
  2. 为实现高功率效率,我们提出了批量归一化(BN)和规模/偏差(SB)的离线预处理和近似表达式相结合的核计算;
  3. 在目标检测任务中使用了8-16位混合定点数据表示;
  4. CNN加速器提供了一个可定义的接口来轻松地重新配置新的CNN模型,并且它支持Caffe框架;

2.Background

2.1 Related Work

  CNN加速器可以分成三类:处理计算内核中的优化问题、处理带宽优化以提高吞吐量、模型优化。

2.2 FPGA实现方法

  实现CNN在FPGA运行的方法有两类:第一类是高层次综合(HLS)方法,指的是C/System C合成,大多数CNN—FPGA都使用HLS。该方法能够加快设计速度,易于仿真,并能自动生成Verilog/VHDL代码。Xilinx ZYNQ极大地改变了FPGA的开发步骤,因为每个FPGA都与计算处理单元(ARM)连接。第二类是传统的寄存器传输级(RTL

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值