基于FPGA的卷积神经网络加速器关键技术研究

发布时间:2021-10-19 04:35
  近些年来,卷积神经网络已经成为机器学习领域最为流行的模型之一,在图像分类、目标检测、语义分割等各个领域都得到广泛应用并取得突破性进展。基于卷积神经网络的人工智能应用,分为训练和推理两个阶段的任务,两个任务都是计算密集型的,目前主要在高性能处理器或集群上运行,如服务器CPU和GPU。然而,过高的功耗不仅增加了数据中心的运营成本,还限制了人工智能应用在嵌入式设备、边缘计算设备等低功耗应用场景下的部署。因此,具有高能效比的卷积神经网络加速器设计成为新的研究热点。FPGA(现场可编程门阵列)具有高性能、高能效比、高灵活性等特点,非常适合作为加速器设计平台。本文针对基于FPGA平台的卷积神经网络加速器设计中的关键技术展开研究,包括不同的任务、不同的实现算法、不同的应用场景、不同的设计和实现方法。面向卷积神经网络的推理任务,本文第二章研究了基于常规空间卷积的加速器设计,深入分析了执行推理任务时每一层的计算特点和访存特点,并提出了加速器设计的并行框架,可以在任务级、层级、循环级和操作级四个层次上挖掘算法的并行性。执行网络模型推理任务时,针对不同的网络模型需要定制不同的加速器。我们提出了设计空间搜索算... 

【文章来源】:国防科技大学湖南省 211工程院校 985工程院校

【文章页数】:117 页

【学位级别】:博士

【部分图文】:

基于FPGA的卷积神经网络加速器关键技术研究


人脸检测和识别应用流程

结构图,器件,逻辑单元,布线


FPGA是Field-Programmable Gate Array(现场可编程门阵列)的缩写,是一种可编程的集成半导体器件。可编程性是指器件在制造完成之后,可以通过编程的方式重新定义内部单元的功能和连接关系,来搭建任意功能的数字电路或系统。FPGA内部主要包含三类资源:可编程逻辑单元、可编程布线资源和输入输出单元。其中可编程逻辑单元用于搭建具有特定功能的逻辑模块;可编程布线资源用于连接不同逻辑模块,搭建特定功能的电路;输入输出单元分则用于将片内的电路连接到片外,形成完整的数字系统。图1.2展示了一个典型的FPGA内部结构图。可编程逻辑单元(CLB)按照二维网格排列,输入输出单元(I/O)分布在网格的外围,可编程逻辑单元之间、可编程逻辑单元与输入输出单元之间通过可编程布线资源互连。FPGA内部丰富的可编程布线资源占用了大量的芯片面积。因此,与ASIC(专用集成电路)相比,FPGA具有芯片面积大、功耗较高、运行频率低等不足。另一方面,这些丰富的可编程布线资源使得FPGA具有ASIC不能比拟的高灵活性。ASIC的设计、验证和流片,需要投入大量的金钱和时间成本,基于FPGA的设计可以提供更低成本的解决方案和更短的上市时间。同时,FPGA的灵活性和可编程性可以快速适应不断变化的应用需求,只需要加载新的比特流对逻辑重新编写即可。目前,在人工智能领域的研究还处于发展阶段,算法更新迭代的速度非常快。基于FPGA的敏捷设计可以快速跟进新的算法需求,因此,利用FPGA进行人工智能应用的加速研究是实现高性能处理的有效途径。

特征图,伪代码,卷积,加速器


图1.3中给出了一个卷积层的伪代码描述,包含六层循环:输出通道层、输入通道层、输出特征图像的行方向、输出特征图像的列方向、卷积窗口的行方向和卷积窗口的列方向。采用常规空间卷积方式的加速器主要通过循环展开的手段提高并行性,获得加速比。受限于FPGA芯片的计算资源,允许展开的循环粒度是有限的。另一方面,卷积层中特征图像的数据量可能会超过FPGA的片上存储容量,目前的加速器多采用图像分块的方法来解决。在加速器设计时,循环展开方式、循环展开粒度、图像分块方法、图像分块的大小等参数构成了设计空间。需要建立加速器模型和有效的设计空间搜索算法,找到最优的参数组合,在满足带宽约束下最大程度的提高加速器的吞吐率性能。采用常规空间卷积算法实现的加速器有很多[36][37][38][39],我们选择几个典型的工作介绍其设计思路。Zhang等人设计的加速器中对输出通道层和输入通道层两层循环进行了展开,并提出了Roofline模型用于指导设计空间搜索[40]。加速器基于32位单精度浮点运算部件并采用HLS实现,在Alex Net模型上执行推理任务的吞吐率性能为61.6GOP/s。Qiu等人通过实验验证的方法分析了网络模型参数的数值精度对于网络模型推理性能的影响,其结论是:网络模型参数采用低位宽低精度的定点数值表示,可以达到与浮点数值表示非常接近的推理性能[41]。与浮点运算部件相比,定点运算部件可以节省硬件资源开销,因此可以分配更多的运算部件,更大程度地挖掘算法的并行性。3除了输出通道层和输入通道层两层循环,Qiu等人设计的加速器还对卷积窗口的行方向和列方向做了充分展开。基于8-16位定点运算部件并采用RTL硬件设计实现,加速器在VGG16模型上执行推理任务的吞吐率性能达到了137.0GOP/s。Ma等人设计的加速器采用了同样的循环展开策略,此外,还通过循环交换的方法,改善了数据访存效率[42]。借助计算资源更丰富的Altera Arria10系列芯片,所实现的加速器在VGG16模型上执行推理任务的吞吐率性能达到了645.3GOP/s。


本文编号:3444161

资料下载
论文发表

本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/3444161.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户b323e***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com