新闻动态

祝贺张宸通过博士论文答辩

2017-06-08 点击数 573次

       2017年6月5日,中心在理科5号楼410会议室组织了张宸同学的博士论文答辩。张宸同学的指导教师为中心主任、教授丛京生博士,副导师为中心特聘研究员孙广宇博士。中心罗国杰老师、孙广宇老师、梁云老师,北京大学信息科学技术学院代亚非教授,中国科学院计算所韩银和教授,清华大学汪玉教授等作为评委参加了答辩。

       张宸同学以“面向深度学习高能效计算研究”为题进行了答辩报告。此次答辩会上,张宸同学认真讲解了博士论文的研究意义与学术贡献,并就各位评委提出的问题进行了清楚、细致的回答。评委们一致认为,张宸同学在答辩过程中,准备充分、表述清楚,对评委的提问做出了准确的回答,评委们投票一致同意,通过张宸博士学位论文答辩,并建议授予其理学博士学位。

       张宸同学在读期间以第一作者发表3篇学术会议论文 (FPGA’15, ICCAD’16, ISLPED’16),同时还有一篇在审的论文。张宸同学的研究非常具有前瞻性,是本领域最早面向深度学习加速器之一,并在性能指标上优于同期同类工作。根据Google Scholar,张宸同学的工作发表以来(2015~2017)已经获得超过170次引用,5000次下载。张宸同学的工作获得的突出成绩得到了老师们的一致认可。

 

附:论文摘要

       近年来,人工智能技术迅猛发展,在全球范围内受到了广泛关注和重视。在人工智能应用背景下,深度学习算法,包括深度神经网络(Deep Neural Networks)、卷积神经网络(Convolutional Neural Networks)以及基于深度学习算法的众多应用(如物体追踪和识别等),对计算机系统的计算性能与能耗要求急剧提高。然而于此同时,由于近年摩尔定律发展的停滞以及冯诺伊曼结构限制,现有的通用计算机系统不能高效的完成深度学习算法的计算。一方面,现有计算架构不能很好的挖掘深度学习算法的并行性。现有计算机架构的缓存结构也不能高效地处理深度学习算法的数据结构。但是另一方面,实际应用场景常常要求加速器设备具有一定的可重构或者编程性。进一步地,现代新兴的大规模集群上也配备了大量的可重构设备,这给进一步挖掘可重构计算的潜能提供了更多的空间。针对深度学习应用,多台可重构设备联合优化是一个尚未被充分讨论的课题。以解决以上难题为目标,本文围绕着面向深度学习算法的专用计算体系结构设计、计算与访存平衡优化、软硬件协同设计、专用加速器设计自动化的角度开展。同时进一步探索了在大规模分布式可重构计算系统中,针对深度学习算法的专用加速器设计优化。

       本文的研究内容及创新点如下:

       1. 可重构易扩展的深度学习专用加速器微架构(Micro-architecture)与缓存设计优化。神经网络算法专用加速器的微架构设计存在很多困难。一方面是多维度张量的计算存在很大的并行度空间,但同时也要考虑多维张量计算中的复杂数据依赖关系;针对这个问题我们充分分析了参与计算张量的所有维度,根据多维张量计算中的数据依赖关系提出专用的处理单元设计。并且提出了一个基于天花板模型(roofline model)方法用于优化大型张量计算的任务切割与调度。另一方面,张量上多维度的并行计算也需要协同考虑其缓存设计,以及缓存中的数据组织。我们根据处理单元设计,针对性地提出缓存设计。并且我们针对FPGA平台DRAM访存特性,结合张量的切割和调度,提出高效的内存数据组织。

       2. 神经网络的计算模型和专用加速器的软硬件协同设计。目前,人工智能算法应用对现有的计算机架构提出了巨大的挑战。一方面现有的通用处理器架构不能高效地处理人工智能算法。另一方面,针对不同的场景以及算法新的改进,人工智能算法一直处于变化之中。过于专用的加速器架构难以应对实际应用场景的算法灵活性需求。因此本文针对性的提出一套软硬件协同设计的加速器,旨在保留编程性的基础上,尽可能展开算法内部的并行性。

       3. 神经网络专用语言到定制化硬件的编译与加速器硬件设计自动化。为了进一步用户使用专用加速器硬件,我们设计了一套与工业级深度学习框架 Caffe 集成的自动化流程,将工业界标准(Proto-buffer)定义的神经网络模型自动编译成专用加速器的指令,并且通过用户易用的标准C++封装,使得用户可以简便的调用专用加速器硬件对计算进行加速。同时,对于加速器硬件开发者而言,因为更换FPGA设备会有不同的资源配置,加速器的硬件配置也会不同。为了方便加速器硬件在不同FPGA平台上的移植,我们提供一套基于高层次综合代码的硬件模版库。通过硬件参数配置文件,和HLS综合流程,可以极其方便的实例化专用FPGA硬件。

       4. 针对神经网络的大规模分布式可重构计算架构设计与优化。由于近些年来数据中心中计算性能需求和功耗限制,大规模分布式的可重构计算受到了大量互联网公司的推崇。微软、百度、腾讯等都在数据中心中部署了大量FPGA设备。然而,神经网络如何部署在大规模FPGA集群上是一个尚未被讨论的问题。考虑到每一台机器都以针对特定某些层的计算做优化,因此在分布式可重构计算架构上,神经网络算法的定制化加速器可以有进一步的优化空间。我们建立了一套从多层神经网络到多FPGA的映射模型,并提出了一套基于动态规划的算法,求得最小计算延迟和最大吞吐率的硬件设计。

       神经网络是一类计算和数据都非常大的算法。满足实际应用场景对性能和功耗需求的加速,是一个复杂的问题。本文发现,定制化的加速器设计是一个行之有效的方法。通过针对神经网络算法配置的专用加速器设计,能够极大地优化执行相同计算所需要的延迟和功耗。同时,软硬件协同优化能够赋予定制化硬件一定程度的编程能力以应付实际应用中灵活的应用场景。自动化的设计流程提高加速器在FPGA上的部署的效率。本文针对神经网络算法,提出一整套加速器微结构、编译、设计自动化流程。基于天花板模型(roofline model)的优化方法使得我们能够在计算与带宽资源限制下,寻找FPGA平台的最优设计。本文相关内容多次在可重构计算领域以及计算机设计自动化领域会议上发表,有望推动定制化加速器计算和深度学习实际应用的进一步发展。本文部分工作是在Falcon Computing Solutions公司实习期间完成,合作成果成功转化为实际产品。