News

Congratulations to Shuo Wang for Passing his PhD Thesis Defense

2020-06-02

   2020年62日,高能效计算与应用中心在理科5号楼410会议室组织了王硕同学的博士学位论文答辩。王硕同学的指导教师为中心长聘副教授梁云博士,清华大学计算机系教授舒继武老师、中科院计算所研究员包云岗老师、北京大学计算机系教授罗英伟老师、中心长聘副教授梁云老师、中心长聘副教授罗国杰老师、中心长聘副教授孙广宇老师、中心特聘研究员林亦波老师作为评委参加了答辩。

        王硕同学以面向可重构芯片的编程和优化技术为题进行了答辩,就博士论文研究背景和意义,以及针对该问题提出的创新技术等方面做了清晰汇报,并且就各位评委提出的问题进行了清楚准确的回答,王硕同学在FPGA编程和优化技术方面的创新成果获得了答辩委员会的一致认可。评委们一致同意通过王硕同学的博士学位论文答辩,并建议授予其理学博士学位。

       王硕同学在攻读博士学位期间发表CCF A类学术论文4篇,CCF B类论文3篇。王硕同学在中心读博期间获得过高能效计算与应用中心优秀研究生、北京大学品友和方正奖学金。

附博士论文摘要:

        随着摩尔定律迭代步伐的放缓,单纯依靠制造工艺的进步来提升芯片性能变得越 来越困难和不可持续。因此,能够对计算任务提供定制化加速的可重构计算成为了继 续提高系统性能的一种有效手段。其中,可编程逻辑门阵列(FPGA)具有的高效、灵 活的可重构计算特性,使其成为了当今应用最广泛的可重构计算设备。在芯片内部, FPGA 不仅集成了大量的可重配置逻辑单元(CLB),还集成了丰富的专用计算(DSP) 和大容量片上存储单元(BRAM),这使其不仅能够对不同计算任务进行快速适配,还 能够大幅度提升特定计算任务的性能和能效。目前,FPGA 已经为科学计算、深度学 习、数据加密等诸多系统提供了高能效的硬件加速服务。 但是,由于 FPGA 在编程模型、性能优化和系统集成这三方面和通用计算设备 (CPU/GPU)大相径庭,使得开发人员在实际的部署中遇到了巨大挑战:

  • FPGA 高层次编程工具链复杂,编译时间冗长且性能估计不准确:在编程语言和工 具链方面,基于硬件编程语言的开发流程,要求程序员在寄存器传输层(RTL)对硬 件电路进行描述,使得开发流程复杂、冗长。尽管目前也有面向 FPGA 的高层次编程 语言和开发工具,这些工具对性能估计不准确,难以开发出硬件友好的高层次代码。
  • FPGA 的异构资源多样,难以充分利用并且不能准确分析性能瓶颈:在性能优化方 面,由于上层软件算法不能感知 FPGA 特有的可重构计算架构,导致软件算法不能 适配 FPGA 独特的计算和存储特性,造成 FPGA 芯片内部丰富的异构资源浪费和性 能损失。
  • FPGA 缺乏高效、完备的运行时软件支持,难以管理调度:在系统集成方面,由于 FPGA 只能通过对硬件电路的逻辑重构完成不同的计算任务,使得传统计算系统的 任务调度器、运行时系统不适合 FPGA 设备,造成资源浪费和相应的延迟。

        为了解决以上这些挑战,本文主要提出以下创新成果来解决可重构芯片 FPGA 编程和优化难题:

• 并行编程工具链:基于并行编程语言 OpenCL 和高层次综合工具,设计了将性能功 耗模型与设计空间探索相结合的自动化工具 FlexCL,对代码中的优化选项和设计参 数进行快速、准确的搜索并生成帕累托最优的代码,极大的降低了 FPGA 开发的门 槛和缩短了开发周期,在 Rodinia OpenCL 程序测试集中,FlexCL 的平均性能和功率 估计误差只有 9.5% 12.6%,设计空间探索的结果在 93% 的情况下达到了帕累托最 优,并且将搜索速度提高了 1000 倍以上。

• 软硬件协同优化框架:在算法层面,通过提高数据局部性和数据压缩算法,将主要访存需求从片外迁移到 FPGA 片上,提高访存带宽和能效。在硬件层面,设计高效 的粗粒度流水线调度策略,将 FPGA 的数据读取、片上计算和数据写回这三大模块的执行在时间上进行重叠,提高计算效率。在科学计算和深度学习的应用中,本文提出的软硬件协同优化的框架解决了软件算法与硬件架构不匹配的难题。其中,在 科学计算程序测试集中,本文提出的迭代融合的优化方案比前人的工作在性能方面 最多提高了 1.6 倍。在深度学习的案例研究中,针对卷积神经网络和循环神经网络, 本文提出的结构化压缩和定点化方法将性能分别至多提高了 10 倍和 33.5 倍。

• 任务调度系统:本文提出了针对 FPGA 的离线代码生成与线上实时调度相结合的任 务调度系统 Poly。在离线时,通过对应用并行计算模式的分析和设计空间探索,生 成高度优化的 FPGA 加速器。在线上,Poly 通过实时分析系统的延迟和功耗,并根 据不同 FPGA 设备的负载,进行最优的动态任务调度。实验结果表明,Poly 能够在不损失计算延迟和性能的情况下使可重构计算系统的能效比提升 23% 并节省数据中 40% 的总拥有成本(TCO)。