论文部分内容阅读
近年来,人工智能技术迅猛发展,在全球范围内受到了广泛关注。以卷积经网络(Convolutional Neural Networks)、图卷积神经网络(Graph Convolutional Neural Networks)为代表的深度学习算法的不断更新迭代对计算机系统的计算性能与能耗要求急剧提高。然而,由于近年来摩尔定律发展的停滞以及冯诺伊曼结构限制,现有的数据中心架构无法高效地实现深度学习与大数据相结合的应用加速。以FPGA为代表的定制化硬件为解决上述问题提供了新思路,一方面,FPGA特有的可重构特性使其能够适应算法的快速发展变化,克服了ASIC解决方案对新兴算法适应性差的的问题;另一方面,FPGA在加速深度学习算法体现出的高能效特性也让其备受研究人员的青睐。随着国内外各大科技公司纷纷在数据中心部署FPGA设备构建异构计算加速集群,CPU+FPGA体系结构在处理大数据应用方面的优势逐渐得到肯定,CPU+FPGA异构计算体现出非常好的发展前景。本文基于CPU-多FPGA异构融合体系结构,面向深度学习与大数据相结合的典型应用,围绕加速器体系结构、算法到硬件映射方案、数据流加速器、性能模型、分布式加速方案等关键技术进行分析研究。本文的研究内容及创新点如下:·研究三维卷积神经网络的FPGA加速技术。本文提出了一种面向二维/三维卷积神经网络加速的模板化体系结构和设计方法。首先,为了减少卷积神经网络的算法复杂度,我们对Winograd快速算法进行扩展使其能运用到三维卷积神经网络中。其次,我们从二维/三维卷积神经网络中抽取了公共算子,并基于此设计了一系列可重构计算模板。最后,我们采用高层次综合语言对计算模板进行实现,并基于这些计算模板构建了加速引擎,实现了模板化加速器的快速生成。由于二维、三维卷积神经网络算法复杂度的差异,先前的工作针对二维卷积神经网络加速器提出的设计空间探索方法对于三维卷积神经网络加速器可能不再适用。针对该问题,我们提出了一种统一的性能分析模型,实现了对二维/三维卷积神经网络加速器的设计空间探索并给出了最优设计参数的搜索方法。实验结果表明针对VGG和C3D网络,我们的加速器在较低的计算资源开销下获得了与目前先进的神经网络加速器相当的性能。在计算吞吐方面,C3D网络加速器获得了13倍于CPU的性能提升;在计算能效方面,C3D网络加速器相对于CPU和GPU分别获得了60倍和30倍的提升。·研究完整的二维/三维卷积神经网络到FPGA硬件的映射方案。本文提出了一种将完整的二维/三维卷积神经网络高效映射到流水化多加速器结构的方案。为了解决网络层规模差异而导致加速器计算效率降低的问题,我们在第一项研究内容的基础上进一步提出了一种流水化多加速器方案,该方案最主要的特点是将所有的层间数据存于片上,从而增加了层间数据复用率,有效降低了片外访存开销,与之前的工作相比,我们进一步提升了加速器的吞吐和效能。为了降低层间数据的片上存储开销,我们首先提出了一种层融合确定算法,通过改变融合层(相邻的两个卷积层)中的循环顺序,实现了层间分块数据的有效利用。其次,为了实现网络层到多个加速器的高效映射,我们基于K-means聚类思想提出了一种层聚类方法,将分块参数接近的网络层进行聚类并映射到同一个加速器。此外,为了解决加速器之间的负载不均衡状况,我们还提出了一种简单而高效的负载均衡调度,进一步提升加速器整体的计算效率。实验结果表明,相比于之前提出的加速器方案,本文提出的流水化多加速器方案获得了最高2.3倍性能提升,在计算效能方面,我们相比于CPU、GPU分别提升了64倍和5倍。·研究以三维卷积神经网络为核心的医疗影像识别应用的并行加速方案。深度学习算法已成功运用到医疗影像分析应用中,然而,应用性能提升的同时,其算法的计算、存储开销也不可避免地增加,导致了应用处理延迟开销的增大。为了解决上述问题,我们以基于三维卷积神经网络的肺结节检测应用为例展开研究,提出了一套基于CPU-多FPGA异构计算平台的肺结节检测加速方案。我们首先对算法并行性进行了深入的分析,提取了核心计算负载——两种三维卷积神经网络:LNS-net和LNC-net,并针对两种网络的不同特征,分别提出了“模型并行”以及“数据并行”的映射方案。其次,我们在第二章提出的三维卷积神经网络加速器基础上进行了改进,节省了硬件资源,提高加速器资源利用率。此外,我们在FPGA节点间设计了两种互连类型——常规通路和快速通路:满足了算法映射方案对FPGA节点间通信的需求。最后,我们采用依托项目开发的定制FPGA加速板卡进行测试,实验结果表明,本文提出的异构系统具有良好的扩展性,并且面向LNS-net和LNC-net的加速方案都获得了高于CPU、GPU的计算吞吐和能效比。与此同时,系统还达到了世界先进水平检测精度。·研究面向深度图卷积神经网络的并行加速方案。我们提出了一种面向深度图卷积神经网络的分布式并行加速方案。我们选取了一个典型的深度图卷积神经网络算法——DAGCN作为主要研究对象,从算法的计算特征、稀疏性等方面对其进行了分析,并通过实验验证了网络层精度与网络深度之间存在正相关关系。我们提出了一种高效的网络映射方案,CPU负责网络层结果的聚合操作,而FPGA则对主要的计算负载——图卷积层进行加速。与前面提到的流水化并行加速方案类似,我们在每个FPGA节点内实现了多个图卷积层加速引擎,以实现多个图卷积层的并行加速。我们将所有节点内的加速引擎组织成横跨所有FPGA节点的长流水线,旨在提高FPGA节点的计算吞吐。为了找到最优设计参数,实现加速器性能最大化,我们建立了数学模型评估加速器的性能与FPGA资源开销。实验结果表明,我们在六加速节点配置下可达到2.6 TFLOPS的实测性能;我们与当前最先进的基于FPGA的图卷积神经网络加速器工作进行对比,进一步表明了我们的加速器方案在计算吞吐和计算效率方面都达到了先进的水平。