论文部分内容阅读
近年,在全球都刮起了人工智能的热潮,人工智能的技术不仅在学术界中被广泛研究,在工业界也被深度开发后大量投入商用,为国民经济带来了巨大的效益。深度学习是人工智能领域中最受关注的一个技术,它是基于人类认知事物时大脑的生物学原理而提出的对大规模的数据进行学习的一套算法模型,在计算机视觉、自然语言处理、语音识别等领域获得了极佳的效果。最早,人们使用CPU来执行深度学习算法,但CPU无法高效地实现包含大量数值计算的深度学习算法。后来,人们开始将GPU设备引入到深度学习中,GPU包含大量的计算核心,很适合加速深度学习算法中的一些并行度很高的模型,比如卷积神经网络。但GPU存在能耗高的缺点,如果被大规模部署,则违背了数据中心绿色节能的发展趋势。再后来,FPGA作为一种新兴的加速设备,依靠它低功耗、可重配置等优点,逐渐引起了大量学者的关注。在此背景下,本文将结合CPU和FPGA特点,把CPU作为控制主机,FPGA作为加速设备,搭建了一个主-从式架构的硬件加速平台。这个平台用于加速深度学习算法中的两个重要的模型,一个是循环神经网络模型,另一个是卷积神经网络模型,前者用于解决时间序列上的模式识别问题,后者用于实现二维空间上的特征识别问题。针对循环神经网络,我们采取数据和任务并行结合的思想,为训练过程设计了通用的并行加速方案,尝试探究隐藏层神经元数量对加速性能的影响,利用异构并行编程语言OpenCL编写在FPGA上执行的内核程序。实验发现,随着隐藏层神经元数量的增加,FPGA加速的性能逐渐接近于CPU,而FPGA的能效比CPU和GPU都高;针对卷积神经网络,类似地,我们为训练和推理两个阶段设计了通用的并行加速方案,实验表明,在MNIST数据集上,在相同的正确率下,FPGA比CPU有更短的推理时间,能效接近CPU的10倍且略高于GPU。在CIFAR-10数据集上,FPGA的加速效果和能效则介于CPU和GPU之间。在基于通道结构的卷积神经网络推理阶段加速实验中,该方案下FPGA的推理时间也略低于通用加速方案的推理时间。因此,本文利用FPGA实现的通用并行加速方案,能在不降低正确率的前提下,完整地加速深度学习算法中的训练和推理两个过程,而基于通道结构的并行加速方案比起通用并行加速方案能在推理过程中起到更好的加速效果。