国科大“芯”青年:我用真“芯”换此生

  • 文/陈艳欣 孔维林 图/叶李源 (党委宣传部/新闻中心)
  • 创建于 2021-09-16
  • 814

  编者按:“2019年,中国科学院大学(以下简称“国科大”)启动了第一期‘一生一芯’计划。2020年7月,第一期计划的5位2016级本科生带着他们合力设计的64位RISC-V处理器SoC芯片毕业,被称为‘最硬核毕业证’,受到社会广泛关注与认可。与第一期不同的是,第二期计划的学生需要自己独立设计一款芯片,虽难度再次拔高,但2017级本科生杨宇恒带着芯片登上了‘山峰’,如果你问杨宇恒为什么难于登天却还要参加,‘我不会被任何人说服。’他回答。”

  2021年1月的某个早上,杨宇恒正在整理桌子,桌子上仅有一台黑亮的显示器,其余地方无一物。遵循着严格的对称美,他早已习惯把自己的物品放到抽屉或柜子中固定的位置,就像计算机贮存一样,既要保持桌面整洁也要追求更高效率。

  他无意间瞥见麻省理工学院(MIT)的博士全奖录取通知,却并未因此大为兴奋,因为这在他的预料之中。

我是什么样的人

  我是一个什么样的人?

  这个问题很难回答,因为一个人有很多面,不同时期也会有不同的成长。但对于杨宇恒而言,自始至终都有一个词随他一路前行,那便是“谨慎”。

  杨宇恒在大连出生,后在沈阳就学,曾痴迷于电脑游戏。到了新环境之后,他放下自己最爱的游戏,搁置那颗蠢蠢欲动的不羁之心,认真学习。其根本动机,就是“谨慎”。

  熟悉了周边环境和学习“套路”后,他便开始琢磨,能不能找到一种效率高的学习方法呢?为此,他在初二、高二的时候,都试图说服老师,让他不写作业,或改变完成作业的方式。他认为,只有自己才最明白什么方式最能自我提升。

  他想,老师当然是真心为学生好的,但自己也是真心地提意见,既然自己提出了好方法,就应该被接受。但转念一想,既然老师并没有说服他,自己也无法说服老师,那还是不要轻易发言了。

  这种“谨慎”既让他能够在新环境中一心一意打基础,也让他变得不善于表达。他说:“我也很困惑。在没有把握之前,我不会把我的思路分享给别人。有时,别人都说自己是对的,我也觉得我或许应该听别人的,就更不知道该怎么说了。”

  于是他默默地读书,默默地有了自己的小爱好。

  高中的他痴迷于科幻小说,《三体》之类比较火的科幻作品他都大体读过。其中,阿西莫夫的《我,机器人》让他兴奋至极,他开始思考,什么是人?什么是人工智能?

  杨宇恒在国科大的同学们告诉他,他们在高中的时候已经接触了计算机。但杨宇恒在高二的时候,他对计算机的喜爱被家长和老师看作“不务正业”。他解释道:“在我们那里,大家觉得这就是去玩游戏。”

  出于对人工智能的兴趣,他默默地去搜罗相关书籍,比如《人工智能》大学教材。但他的痴迷明显不利于备考,很快遭到了父母、老师的阻止,最后只能偷看。

  他边看边想,自己是不是能够有一个非常厉害的人工智能,能不能用数学理论帮助计算机解决复杂问题并应用于人工智能上。

  带着这份兴趣,他被国科大的计算机专业吸引过来。不同于此前的第一年适应环境和第二年放飞自我的模式,有目标的他一直在探索提升自我的方法。不同于其他同学找师兄师姐求取经验的方式,不善表达的他只能自己摸索,埋头苦学。

上下而求索

  如果没有经历过真刀真枪的实践,他不会轻易表达自己的观点,同样也不会被别人说服。这自然而然让他进入到漫漫长路上下而求索的状态。

  计算机程序是用某种特定的符号系统(指令或语言)对被处理的数据和实现算法的过程进行的描述,是为了解决某一问题而设计的一系列排列有序的指令或语句的集合。程序送入计算机,存放在存储器中,计算机按照程序,即按照为解决某一问题而设计的一系列排好顺序的指令或语句进行工作。

  比如,如果想算“1+1”等于几,那么计算机会经历“输入信息”“存储器”“控制器”“运算器”“输出设备”等一步步流程,这个流程也被称为“数据流(Data Flow)”。

  普通用户用计算机算道数学题只需千分之一秒,但如果涉及上千万的数据或繁杂的数学公式,就可能需要上千台电脑组成的超级计算机并行计算一个月。

  怎么才能让计算机极快地处理命令?如何仅在一台电脑甚至是手机上去实现超级计算机才能计算的量?在上完《计算机组成原理》课程后,杨宇恒一直有这个想法。

  《计算机组成原理》介绍的内容主要是以冯氏结构(存储指令、顺序执行)为基础,加之指令集,以及cache、流水线等重要的性能优化技术。杨宇恒认为,现在计算机的汇编语言(面向机器的程序设计语言,即与特定的计算机结构及其指令系统密切相关)不直接,太“磨叽”,“我觉得这是以一种非常晦涩的方式来表述出这种并行,这样就需要计算机的运算部件非常费力地去执行。我当时的思路就是要非常直接地把程序的需求描述给计算机,让计算机知道哪些数据可以一起算。我想的是一种新的、不一样的运算。”

  他的想法是创建一种新的汇编语言,一种与冯诺依曼提出“顺序执行”原理完全不同的语言,“我希望这种语言会更加具体、更加明确。”

  他注意到“Data Flow”这一概念。他翻阅海量的文献,“我读到了相关文献,说有一种计算机在30年前就这么设计,但后来失败了。我心想,一定要做这个方向。”他发现MIT的Arvind教授等人是最早一批研发数据流原型机的学者。原来茫茫世界,自己并不孤独,有人的想法与他不谋而合,这让他极为兴奋。

  殊不知,在埋头苦学的日子里,他与MIT的缘分早就有了苗头。

  两年后,他收到MIT的录取通知书时,得到与Arvind教授视频半个小时的机会。他鼓起勇气向这位数据流计算的先驱者提出了自己的想法和疑问,终于解答了一直以来的疑惑。

  原来,现在计算机发展几十年都是在冯·诺依曼语言基础上进行开发,众多人员在此基础上已经盖了很多“楼”,如果现在再想把基础换一下,就要把那些“楼”都拆掉,会浪费庞大时间成本和经济成本,“这样之前做的工作都需要重新做,我的体系结构需要重新设计,之后有一个非常难的东西大家都不想去触碰,就是顺序执行。我的语言虽然能够让计算机性能很好,但是开发很难。”

于谨慎之中破茧

  计算机深刻的逻辑关系也致使杨宇恒有着标准的理工科判断,用计算机术语可表达为trade off(权衡)。他会把它运用到生活的各个方面,比如在选课时他有三个指标:一是老师讲得通俗易懂;二是带有自己喜欢的数学知识和推导证明;三是对未来有帮助的知识。“如果这门课符合其中两个指标,我就会选择它。”

  按照严格的逻辑规划,杨宇恒早在大一时就计划好了怎么争取出国访学的机会,为此准备绩点、英语成绩。

  国科大本科生中将近一半都参与过大三下学期至大四上学期的海外高校访学项目。据统计,42.1%的第一届本科生参与过海外访学,其中89%是世界排名前100的高校。杨宇恒便是国科大海外访学队伍的其中一员。他的目的地,正是MIT。

  初到MIT,他和随行的两位同学对着快餐店的菜单,面面相觑。他们初来乍到,既不知道怎么点菜,也不知道要不要交小费。服务生热情地向他们介绍菜品,他们也听不懂。吃完后,懵懵懂懂地刷了20%。直到后来,他们才知道,原来在快餐店其实可以不给小费。

  虽然早在初高中阶段,就有老师鼓励他,认为他一定可以去MIT,但他“谨慎”的本性让他对海外读研一事并没有坚定的信心。直到他与来自各国的访学学生一起站在MIT的礼堂时,他才清晰地意识到,自己终于来到了MIT。

  访学只有一个学期,但对他的改变却很大。半年时间,他先是选择了MIT体系结构方向仅有的两门研究生课程,又申请加入课题组迅速投入到科研中。最初的几周,他几乎是逼着自己用简陋的口语去提问,但很快,他发现自己能从交流中学到很多。课题组的人也鼓励在组会交流、学习。渐渐地,他发现交流已经不再是困难,而是一种令他享受的学习方法。

  因此,当他回国完成自己的毕业设计时,一改过去埋头苦干的风格,而是积极展示自己的问题和想法。

  他说:“我发现科研更多时候,并非是去提出问题的具体解决方案,而是说服学界去关注某个被忽视的问题。于是,我很多时候都在组织研究动机中的逻辑,把已有研究分类组织起来,描述清楚自己的研究与它们的关系。”

  他不再为自己的问题是否有价值而患得患失,而是积极地向别人解释,自己正在解决一个有价值的问题,想让别人和自己一样对这些问题充满好奇心。

  生活要用最大的努力换取最大的自由。大一的时候,他第一次听到朋友提出这个观点时感动得热泪盈眶。那时候,一直被“谨慎”束缚的他没意识到,他之所以感动,是因为他潜意识里知道,只有努力才能让他有底气,敢于表达优秀的自己。如今,他依旧谦逊,但已经不再下意识自我怀疑,而是敢于表达,勇于开拓。

  于是,在报名第二期“一生一芯”项目的座谈会上,他勇敢地举起了手。

一生一芯

  “一生一芯”,是一个浪漫的名字,本意是让每一个学生都能带着自己设计的一款芯片毕业。2019年7月25日,国科大召开新闻发布会,介绍首期“一生一芯”计划的5名同学共同主导完成了一款64位RISC-V处理器SoC芯片设计并成功流片,实现在芯片上成功运行Linux操作系统以及学生自己编写的国科大教学操作系统UCAS-Core。

  这则新闻很快出现在杨宇恒的手机上。他在看到这个新闻的第一眼,就想,这是一件有意义的事情,再没有比这个更好的平台了。

  4月底,杨宇恒已经度过了最忙碌的阶段。趁着阳光正好,他与同学相约踏春。当杨宇恒在北海上,两手分别荡起船桨,勤勤恳恳地载着已经累得瘫在一边的师兄,兴致勃勃地驶着小木船一点一点推开波浪时,一点也看不出,这个表情温和、举止谦虚的22岁圆脸男孩,已经是一位能独立设计芯片的MIT准博士研究生。

  在当初的那一瞬间,他想到,自己可以从头到尾做一个项目,可以拥有完全按照自己想法来的代码结构,可以和大家一起讨论、分享问题与克服困难,一起找到解决方案。更重要的是,这是一次机会,能够摆脱长期以来作为学生的束缚,没有实验目录,没有实验指南,从0开始,做出属于自己的设计。

  只需要一瞬间的心动,他迅速向往届参与计划的师兄师姐了解情况并报名参加第二期计划。师兄用前20分钟告诉他,这个计划强度大、难度高,如果没想清楚,千万不要去。

  “我不会被说服,我会自己做了之后才去判断行不行。”他强调。

  一开始,和他一样被新闻打动并报名的同学很多,国科大中便有十数个,但听说了计划的难度和高强度后,近一半同学放弃并退出。最后留在计划里的,加上他只有11名同学,其中来自国科大的有5名。从2020年8月开始到12月底,他独立完成处理器框架的构建、RISC-V处理器的设计与实现、实时操作系统的移植。

  让同学们望而生畏的,是第二期计划的目标——“独立开发”。相比于第一期合作研发一款功能完善的芯片,第二期“一生一芯”则要求每一个学生都独立完成属于自己的芯片,独立查资料、搭环境、找验证方法。尽管导师们设置了许多课程,课下都很积极地回答问题,同学们之间也在互相帮助,但如何找到问题、提出问题,才是独立研发最大的问题。

  对于同学们的不解,老师们解释道,比起现成的知识和技术,独立开发的能力才是学生最大的财富。如今,中国在芯片方面与国际领先尚有差异,面对技术封锁的大环境,很多知识和技术都需要自行查资料,必须从小培养不依赖别人的能力。第二期的目标,不在于芯片性能多好,功能多完善,而在于每一位同学都有自己的芯片,都有独立开发的能力。而这,才是真正的“一生一芯”。

  最后,第二期项目采用MDD(Multi-Design Die)新架构,在一个芯片内集成9个不同的处理器设计,并可以选取任何一个设计来运行程序。其中,杨宇恒设计的RISC-V处理器支持I、M、Z指令以及Machine态控制寄存器,已经可以运行实际的操作系统,按照计划顺利完成。

  2021年6月,他带着自己设计的芯片从国科大毕业,成为不折不扣的“芯”青年。

  在杨宇恒被MIT录取后,国科大计算机学院教授、“一生一芯”计划导师包云岗在朋友圈写道,“一大早收到一个好消息,这一次,既为国科大的本科教学,也为‘一生一芯’计划。”

  小科普:

  任何技术发展和人才培养都离不开时代的机遇。2018年,中兴遭到美国禁运;2019年5月,华为被美国商务部列入“实体名单”。这让越来越多的人意识到芯片在当今时代的重要性。

  然而,我国前端芯片架构设计人才存在很大的缺口。国科大计算机学院包云岗团队对2008年到2017年计算机体系结构国际顶级会议论文第一作者做过分析,只有4%的人在中国就业。

  包云岗认为,开放指令集RISC-V可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件,通过开源,能降低芯片开发门槛,破解人才危局,实现换道超车。他说:“芯片设计的门槛太高,它很容易就被几家企业垄断。如果大家都能做,大家都有机会,这是不是解决我国芯片问题的新思路?也许能像开发APP一样开发芯片。”

  1981年,得益于CAD/EDA技术的兴起,RISC体系奠基人、图灵奖得主David Patterson在加州大学伯克利分校带着十几位研究生设计出第一代RISC-I芯片并流片成功,成为如今RISC架构的基础。

  如今,RISC已进入第五代,2018年,中国开放指令(RISC-V)生态联盟成立。得益于开源芯片、敏捷设计的技术发展大趋势,芯片设计门槛越来越低,各科研高校完全能承担教学成本,推广开设相应的实践课程。包云岗解释道:“某种程度上,‘一生一芯’计划的意义在于捅破了一层窗户纸——本科生也能做复杂的CPU芯片。”

  “一生一芯”计划是一个“硅上做教学”的实践课,同时也是一个处理器芯片设计方法的试验场。第二期计划尝试了MDD(Multi-Design Die)架构,将来自5所高校的9个设计集成到一个芯片中,从而将每位学生的流片成本从5万元降低到2万元。

  开发新架构、降低人才培养成本,这是青年科学家的“芯”故事。对于刚刚起步的科苑学子而言,“一生一芯”是通向未来“芯”世界的门票。

  本文原载于《国科大》杂志2021年第三期《杨宇恒:中国“芯”青年》

责任编辑:张婧睿