《电子技术应用》
您所在的位置:首页 > MEMS|传感技术 > 业界动态 > DAC2019论文|挑战FPGA神经网络硬件加速器性能极限

DAC2019论文|挑战FPGA神经网络硬件加速器性能极限

2019-07-24

  01

  —

  6月2-6日,在美国拉斯维加斯Convention Center召开了一年一度的ACM/IEEE设计自动化大会“Design Automation Conference (DAC) 2019”,作为计算机体系结构领域的顶级会议之一,每年会吸引上千名学者和上百家公司参会,进行处理器设计、EDA工具、集成电路设计、边缘计算、机器学习等领域的学术和前沿技术的交流和展出,DAC已被中国计算机学会CCF列为A类推荐会议。

微信图片_20190724171018.jpg

  北京交通大学信息科学研究所王东副教授代表其研究小组在本次会议上宣讲了题目为《ABM-SpConv一种基于新型稀疏卷积算法的卷积神经网络FPGA硬件加速方法》(ABM-SpConv: A Novel Approach to FPGA-Based Acceleration of Convolutional Neural Network Inference)的论文,作者分别为:Dong Wang, Ke Xu, Qun Jia, Soheil Ghiasi.

微信图片_20190724172500.jpg

  图(1)王东老师在DAC2019大会上宣讲论文

  02

  —

  论文简介

  早期基于FPGA的深度卷积神经网络推理硬件加速器设计研究均采用时域卷积(Spatial-Domain Convolution,SDConv)方法,研究方向主要集中在处理器设计空间探索、存储器带宽优化、神经网络模型压缩编码等方面。如国内北京大学高能效计算中心Jason Cong教授的研究小组最先提出了一种基于roofline 模型进行硬件加速器设计空间探索的方法[1],定量化地指导硬件加速器吞吐率和存储器带宽的设计和优化;该研究还采用了高层次综合(high-level synthesis, HLS)设计方法学,进行基于卷积循环分块(loop tiling)和变换优化方法的硬件加速方法研究。清华大学Yu Wang教授团队的研究工作[2]进一步指出,深度卷积神经网络推理运算中,卷积层为计算密集型运算(computational-centric),而全连接层为存储密集型运算(memory-centric);为了解决全连接层计算性能受到外存带宽限制的问题,该研究提出了一种基于矩阵奇异值分解(singular value decomposition,SVD)的神经网络模型压缩方法来降低网络模型传输的带宽消耗,并设计了一种可同时加速卷积和全连接层运算的硬件电路结构。

  时域卷积SDConv方法的问题在于,采用该方法设计的硬件加速器的最高性能受到FPGA片上DSP资源数量的限制。如图(2)所示的roofline模型所示,当FPGA片上DSP资源对应的乘累加单元(MAC)总数为Nmac时,处理器的推理运算的最高性能不会超过2×Nmac×Freq,其中Freq为处理器的工作频率;该理论性能极限被称为computational roof。目前,基于时域卷积方法的硬件硬件加速器设计性能已接近理论计算性能极限,单从架构设计方面已经无法进一步提升神经网络硬件加速器的性能。因此,最新的学术研究开始转向研究基于新型卷积算法的加速器设计,包括如频域卷积(Frequency-Domain Convolution,FDConv)和稀疏卷积(Sparse Convolution,SpConv)。这两种方法都是通过设计新型的卷积计算方法,在算法层面压缩卷积运算所需要执行的乘累加运算数目,如减少Rmac倍,则理论上对应的硬件加速器性能可提升Rmac倍(通常也称Rmac为算法加速比)。例如FPGA’18的最新论文[3]设计了一种高效的频域卷积算法,与时域卷积算法相比,该方法可以将卷积运算中乘累加运算数量压缩3.6倍,从而将理论计算性能极限提升了3.6倍,论文在Stratix-VA7 FPGA上进行了实验,仅使用256个DSP单元,实现了高达669 GOP/s的卷积神经网络推理性能。

微信图片_20190724171033.jpg

  图(2)深度卷积神经网络硬件加速器roofline模型

  通过进一步分析深度卷积神经网络硬件加速器的roofline模型可以发现,现有研究虽然在算法层面开展了不同类型卷积方法的研究,但在硬件架构层面,绝大多数设计均采用了相类似的计算阵列架构——乘累加阵列;所带来的问题是硬件加速器电路过度依赖片上DSP资源,提升硬件加速器的推理性能的途径被局限于两种:(1)使用更大容量FPGA器件,利用更多DSP资源提供算力;(2)进一步压缩卷积运算中乘累加运算的数量,提高算法加速比Rmac。第一种方法会增大应用实现的成本,第二种方法往往会带来深度学习算法准确率的下降。

  本论文另辟蹊径,提出了一种新的稀疏卷积算法,该方法利用权值共享技术避免了卷积运算中冗余的乘法运算,在不影响模型精度的前提下压缩了乘法运算的数量;同时,还将卷积运算公式进行变形,解耦乘法和加法运算数据流,使得乘法和加法运算可分别映射到两个相互独立的乘法计算阵列和加法计算阵列上,通过灵活的分配乘法器和加法器的比例关系,充分利用FPGA片上所有逻辑和DSP资源,为卷积运算提供更多算力;例如上图所示,本文的方法可突破FPGA片上DSP资源的限制,改变硬件加速器理论计算性能极限(computational roof)为2×Nacc×Freq,与FPGA’18相比,硬件加速器的最高性能可进一步提升1.5倍,突破1TOP/s。论文使用了英特尔公司的FPGA平台和OpenCL SDK开发工具。