面向深度学习的FPGA硬件加速机制研究开题报告
2020-02-10 22:35:08
1. 研究目的与意义(文献综述)
一、课题研究背景
随着大数据时代的到来和计算性能的提升,机器学习的研究在经历20世纪由计算瓶颈引起的寒潮后重新变得火热起来,2006年,加拿大多伦多大学教授geoffrey hinton正式提出了深度学习的概念,重新点燃了人工智能领域对于神经网络的热情,掀起了汹涌至今的深度学习浪潮[1]。机器学习算法也广泛运用到许多智能应用和云服务之中。目前,机器学习领域最火热的是以神经网络为代表的深度学习,深度学习全称深度神经网络,人工神经网络是一种典型的机器学习方法,也是深度学习的一种重要方式。在近年来的新型大数据和人工智能应用中,神经网络已经成为了热点研究领域。2012年,hinton教授领导的小组采用卷积神经网络模型alexnet,在imagenet图像识别比赛中一举夺冠,取得了里程碑式的突破[2]。同年,由斯坦福大学著名的吴恩达教授和世界顶尖计算机专家jeffdean共同主导的深度神经网络——dnn技术在图像识别领域取得了惊人的成绩,在imagenet评测中成功的把错误率从26%降低到了15%。深度学习算法在世界大赛的脱颖而出,也再一次吸引了学术界和工业界对于深度学习领域的关注。目前,深度学习算法在语音识别、图像识别、机器视觉和自然语言处理等研究领域都有着广泛的应用[3]。由于深度学习能够在多层网络结构中对输入数据的抽象特征不断地学习,使得深度学习可以解决不同的数据表示问题,因此深度学习在处理复杂的问题上,例如图像、声音、文字和识别等方向上有巨大的模型优势[4]。
深度学习网络模型参数的训练需要有大量的数据和强大计算能力的支撑,然而,在大数据时代,深度学习的网络规模在不断扩大,计算和数据的复杂也随之剧增,而人们对数据处理和功能又有较高要求,因此,如何高性能低功耗地实现深度学习相关算法成为了学术领域的研究热点[3]。对于深度学习算法来说,如果仅仅通过软件层面来提高计算效率是不够的。由于计算量大、神经网络内部大量并行计算的存在,cpu很难满足实时性和低功耗的需求,另外,cpu的摩尔定律已入暮年,而机器学习和 web 服务的规模却在指数级增长,因此,设计者需利用其他硬件加速常见的计算任务,一种有效的解决方案就是采用异构计算体系结构,即在cpu的基础上添加专用协处理器,来提升处理性能[5]。
二、相关研究现状
2.1 硬件加速现状
人机大战,让谷歌的人工智能alphago一炮走红,也让深度学习这个概念为公众所熟知。深度学习本质上是多层次的人工神经网络算法,利用算法去模仿和逼近人脑思维方式。而这些算法需要依赖高性能的处理器硬件来实现对于数据的处理。cpu是最通用的处理器,但是深度学习与传统计算模式最大的区别就是,它是从输入的大量数据中自发地总结出规律,而不是人为提取所需解决问题的特征或者总结规律来进行编程,也正因为如此,传统的cpu并不适用于深度学习。
2. 研究的基本内容与方案
三、研究的基本内容、目标、拟采用的技术方案及措施
3.1 研究内容及研究目标
本文的研究内容主要是用FPGA加速深度学习模型中的计算。分析神经网络模型、挖掘算法中存在的计算并行性,设计更适合算法的逻辑计算单元,设计系统框架,搭建一个CPU FPGA的异构计算平台,结合具体的深度学习模型,利用OpenCL编写在FPGA上执行的内核程序,在CPU的控制下让FPGA执行内核程序,测试深度学习算法在FPGA上执行的性能与功耗,并将FPGA深度学习加速性能与GPU加速性能进行比较。
3.2 拟采用的技术方案及措施
本文使用的FPGA开发板为XilinxKintex UltraScale FPGA KCU1500,芯片为XCKU115-2FLVB2104E。通过PCLE插槽,将FPGA介入到CPU服务器上,搭建一个CPU FPGA的异构计算平台。SDAccel是面向OpenCL、C和C 应用的软件开发环境,也是首个面向OpenCL,C和C 进行架构优化的编译器,可在FPGA上实现类似CPU / GPU的开发运行体验。搭建好服务器平台以后,在服务器上安装SDAccel开发环境后,将用OpenCL编写的深度学习算法,在SDAccel平台上通过编译产生一个二进制流文件,将此二进制流文件刷写到FPGA,运行过程中,CPU将数据及内核程序传给FPGA,让FPGA完成加速的任务,最后再将运行结果返回给CPU。除了FPGA,服务器上还搭建了GPU处理器,型号为Nivida Tesla P100,因此,除了使用FPGA来加速计算以外,还需要测试在同样的算法、同样的数据集下GPU的加速性能,以此来验证FPGA的加速性能。
3. 研究计划与安排
四、进度安排
(1) 2019/1/22—2019/2/28:阅读相关文献,确定选题,完成开题报告;
(2) 2019/3/1—2019/3/15:继续阅读文献,翻译英文文献,学习深度学习的理论知识,完成cpu fpga软硬件平台搭建;
(3) 2019/3/16—2019/4/30: 学习opencl编程,学习深度学习算法,掌握fpga开发,结合fpga资源和特性,设计硬件加速方案;实施硬件加速方案,结合数据集,对比测试硬件加速方案的性能和能耗;
4. 参考文献(12篇以上)
五、参考文献
[1] 赵洋洋.基于fpga的深度信念网络加速系统研究[d]. 中国科学技术大学, 2017.
[2] 魏小淞. fpga加速卷积神经网络训练的研究与实现[d].西安:西安电子科技大学,2018.
[3] 董振兴.基于fpga平台的深度学习应用研究[d].西安:西安电子科技大学,2018.