丹棱君有话说:在上周五发布的【微软黑科技一周概览】中,有小伙伴在留言区表示想知道“在微软做实习生是什么体验”。今天,我们请来微软亚洲研究院“明日之星”实习生李博杰和大家聊一聊这个话题。我们也会持续分享更多实习生故事,欢迎多多关注~
从 2015 年 7 月开始,李博杰在微软亚洲研究院实习至今,参与了许多项目。作为科研前线的弄潮儿,今天他要和我们分享的是他的 FPGA 研究。
李博杰微软亚洲研究院 系统组实习生
李博杰,年仅 23 岁,来自中国科学技术大学计算机专业,博士生在读。2013 年加入微软亚洲研究院联合培养博士生项目。2013 年获得“微软小学者”奖学金,2016 年 Microsoft Hackathon Cloud & Enterprise 组全球第二名。
博杰:嗯,我的研究方向是可编程硬件(FPGA)加速数据中心,所以最近相关方面的研究比较多。由于 CPU 时钟频率和内核数量的增长遇到了瓶颈,GPU 不适合需要低延迟的数据流处理任务,定制专用芯片又成本过高,近年来可编程硬件(FPGA)在数据中心得以大规模部署。FPGA 能够以1/5于 CPU 的功耗、1/10于CPU 的时钟频率,达到相近甚至更高的性能,并降低 10 倍的延迟。CPU、GPU 这些冯·诺依曼体系结构,每个工人每一步该做什么都需要工头亲自指示,原料和结果也是从一个集中的仓库里拿;FPGA 则是每个工人来的时候就知道自己该做什么,原料和结果直接在流水线上的工人间传递。我读过《三体》里面的人列计算机,也看过 Minecraft 大神用红石电路搭的 CPU,就感觉取指-译码-执行这种体系结构对数据流处理任务有些低效,很荣幸 MSRA 给了我机会探索新的体系结构。
然而 FPGA 的编程和调试仍然很原始,一个算法在 FPGA 里面实现要写比 CPU 多十倍的代码,编译一次要几个小时,一个 bug 调上一周是家常便饭;与 CPU 相比,FPGA 目前还像是二等公民,通信和协作比较麻烦。上世纪七十年代 CPU 体系结构走过的路,从编程语言到操作系统,在 CPU 和 FPGA 的异构体系结构上又要重走一遍。我们的 ClickNP 提出了一个用高级语言编程的高性能网络处理框架,目前在继续探索 FPGA 更多的应用和更通用的编程框架。我感觉站在新世界的大门前,这扇厚重的门已经被推开一条缝,露出了耀眼的阳光;很希望更多人与我们一起推开新世界的大门。
Q对于热爱计算机科研的同学,有什么想和他们分享的?博杰:对有科研理想的本科同学想说的话:在学校尽量参与一个研究项目,培养对研究的感觉。我在学校的时候没有做过研究,现在想来挺遗憾的。做研究的时候要想清楚有什么可以量化的创新(比如提升性能几倍,或者准确率提高了几个百分点),而不仅仅是重造轮子。参与合作的时候不能只是帮忙做实验、处理数据,而要清楚整个项目的背景,可选方案有哪些,我们为什么选择这个方案,以及自己在项目中的贡献。
结语:年轻的时候尽量多做事情,尝试各种有挑战的东西,比如说成为微软的实习生,对于你的科研生涯十分有好处,让自己的潜能得到释放吧!
PS:欢迎大家在留言区提出自己想了解的问题,丹棱君会帮忙转达博杰大神~无论是实习、科研还是其他,大胆甩过来吧!
本文转载自微信公众号:微软学生俱乐部
后台潜伏着一只微软小冰,如果你很萌,请跟她一决高下!
关注我们微软丹棱街5号如果觉得好,就鼓励一下作者吧~长按下面的二维码关注微软亚太研发集团官方微信!