基于FPGA平台的深度学习应用研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA平台的深度学习应用研究
近年来,人工智能可以说是当下最热门的话题之一,而推动人工智能技术蓬勃发展的动力正是深度学习的崛起。如今,深度学习已广泛应用于各个领域,在计算机视觉、语音识别和自然语言处理等领域都取得了重大突破。
然而深度学习强大的模拟预测能力离不开具有超强计算能力硬件的支持,强大的计算能力是支撑深度学习发展的基础。如何满足深度学习日渐增加的高性能计算需求,一直是很多科研机构和商业公司研究的热点。
随着FPGA的不断发展和OpenCL异构计算标准的不断完善,基于FPGA的新型异构计算平台开始展现其高性能计算的潜力。与大型的工作站和GPU集群相比,FPGA平台具有高性能、低功耗的优势。
因此,本文基于FPGA的OpenCL异构计算平台,对深度学习中常用的CNN图像分类进行了异构计算加速研究和具体实现。本文首先介绍了深度学习领域中常用于图像处理的卷积神经网络的相关知识和常用的CNN网络模型。
对新型OpenCL异构计算标准的编程架构进行了分析研究,对OpenCL标准的平台模型、执行模型、内存模型和编程模型4种模型特点作了详细的阐述。然后,基于对CNN模型实现图像分类过程中计算并行性特征的分析和FPGA高并行性的硬件架构特点,设计了CNN图像分类的异构计算加速方案。
针对特定的CNN模型AlexNet,完成了整个网络模型的FPGA异构计算加速内核设计。根据模型中各层网络之间的计算相似性,对网络模型中的8个网络层采用了相同的内核设计方法以便于系统复用。
对于单层网络中卷积、池化等不同的运算操作设计了5个对应的硬件加速内核。根据计算过程中数据的传递特点,使用了Channel技术在多个内核间进行数
据的传递,提高了内核之间数据的传递效率并提高了系统的内存访存效率。
最后,本文使用DE5-Net开发板搭建了基于FPGA的OpenCL异构计算平台开发环境,对CNN异构计算加速方案进行了具体实现。在FPGA的内核程序实现过程中,采用了向量化数据、计算流水线复制和Channel访存优化等设计优化方法提高了FPGA的资源利用率,优化了FPGA的并行计算加速性能。
采用ImageNet数据集中的图片对系统进行了测试,取得了较高的分类准确率,对比了caffe下的使用CPU和GPU进行分类的执行时间。测试结果表明,本文设计的基于FPGA的CNN异构计算加速系统在加速性能和功耗的平衡上具有不错的表现。