新发布的开源高性能处理器“香山”,研发骨干来自国科大“一生一芯”计划
近日,在首届RISC-V中国峰会上,中国科学院大学教授、中国科学院计算技术研究所研究员包云岗公布了开源高性能RISC-V处理器“香山”,相关报告引起了广泛关注。国科大首期“一生一芯”计划的五位同学(金越、王华强、王凯帆、张林隽、张紫飞)是这支开发团队的技术骨干,而国科大2017级本科生陈国凯作为第二期“一生一芯”计划的成员参与了“香山”的开发。从2020年夏天公布的“果壳(NutShell)”芯片到如今的“香山”,又有哪些新的关注点?请随国晓薇一起来听听包云岗老师是如何回答。
1
要让“香山”像Linux那样至少存活30年
2010年RISC-V诞生,迄今已有11年。如今,在RISC-V国际基金会网站上登记的各类商业或开源的RISC-V处理器核就有上百个,为什么还要做一个开源的高性能RISC-V核?
对于这个问题,我们和很多业界企业交流过,也做了很多调研与分析,这都让我们判断认为业界需要一个开源的高性能RISC-V核。另一方面,我们也在思考一个问题——为什么CPU领域还没有一个像Linux那样的开源主线?1991年开源的Linux诞生,到今天正好30年。如今,Linux不仅被工业界广泛应用,也成为学术界开展操作系统研究的创新平台。
RISC-V是开放开源的指令集,允许全世界任何人免费实现一个RISC-V处理器,可以是商用,也可以开源,这是和公司私有的X86/ARM指令集相比最大的区别之一。但是,十年过去了,到现在还未能形成一个像Linux那样的开源主线。Berkeley的BOOM目标是一个高性能开源RISC-V核,但是BOOM代码仓库相对不开放,官方建议其他人实现任何功能都要事先和他们沟通,以确保不要与他们的计划产生冲突。根据GitHub官方的统计页面显示,从2014年1月至今,为BOOM提交过超过100行代码修改的仅有8人。由此可见,一定程度上因为BOOM严格的外部贡献政策,开源社区对BOOM的参与度并不高。
所以,团队的唐丹博士(中科院计算所高级工程师)和我一直认为要建立一个像Linux那样的开源RISC-V核主线,既能被工业界广泛应用,又能支持学术界试验创新想法。最关键的是,一定要让它像Linux那样至少存活30年!
于是,“香山”诞生了。
2
“香山”从“雁栖湖”到“南湖”的成长过程
我们做了一年多的准备工作——申请经费,启动国科大“一生一芯”计划培养人才,建立团队,寻找合作伙伴……这期间得到了太多太多人的支持和帮助:国科大计算机学院院长、中科院计算所孙凝晖院士帮我们多处找经费,国科大全力支持“一生一芯”计划,鹏城实验室支持我们建立起后端物理设计团队,多位中科院计算所老所友毅然决定参与开源主线等等,就不一一列举了。
终于,“香山”正式启动了——2020年6月11日,“香山”在GitHub上建立了代码仓库。
当时团队18人的平均年龄是26.5岁,去掉3位40岁以上拖后腿的“老人”,剩下15位平均年龄只有23.1岁;带领“香山”团队开发的队长徐易难只有23岁。后来加入的好几位,年龄也在25岁以下。国科大首期“一生一芯”计划的五位同学(金越、王华强、王凯帆、张林隽、张紫飞)本科一毕业便加入了“香山”的开发,成为了技术骨干。
“香山”开发初期速度非常快,建立代码仓库后,不到一个月时间,7月6日乱序流水线便已完成,能正确运行CoreMark;9月12日,Linux正确启动;10月22日,Debian正确启动。短短的一年时间里,25位同学和老师参与了“香山”的开发。821次主分支代码合并,3296次代码提交(commit),5万余行代码,400多个文档,记录了“香山”的成长过程。
作为一款开源RISC-V处理器核,“香山”的架构代号以湖命名。第一版架构代号是“雁栖湖”,这是带有浓重国科大情节的同学们起的名字,因为他们都在国科大雁栖湖校区集中学习了一年。
“雁栖湖”RTL代码于2021年4月完成,计划于7月基于TSMC28nm工艺流片,目前频率为1.3GHz。“雁栖湖”架构是一个11级流水、6发射、4个访存部件的乱序处理器核。在发射宽度上已经可以和一些ARM高端处理器核相当,但还未进行充分优化,因此实际性能还有不小的差距。我们希望未来通过持续迭代优化(“南湖”-->"X湖"-->"Y湖"-->……),性能达到ARM A76的水平。
第二版架构代号是“南湖”,这是向建党100周年致敬。这期间,小伙伴们纷纷自己动手,开发了各种各样的优化和调试工具,大大地加速了优化和验证环节。这让我真心佩服这批90后——他们真是充满了创造力,从工作到生活,而主要驱动力之一就是“省(tou)时(lan)”。
比如,宁可自己写个程序自动点外卖,也懒得打开手机看菜单点。“南湖”计划在今年年底流片,将采用中芯国际14nm工艺,目标频率是2GHz,SPECCPU分值达到10分/GHz。这是一个很有挑战的目标,需要对架构进行大幅度的优化改进。
前几天,小伙伴们专门去了一趟嘉兴南湖,研讨“香山”未来的发展。我们的理念是代码开源、流程开放、文档公开。这期间,有企业直接参与开发,也有企业表达参与意向,都因为认同开源理念,愿意一起来共建开源的“香山”。这些来自工业界的积极反馈,给与我们极大的鼓舞和信心,让我们更坚定地去践行“科研重工业模式”。
“科研重工业模式”,是 2020年1月我为《中国计算机学会通讯(CCCF)》写的一篇卷首语《伯克利科研模式的启发》中提出的:“回顾伯克利的科研历程,可以发现他们在过去几十年研制了大量的原型系统,不仅推动了技术进步甚至颠覆产业,也培养了一代代杰出人才(其中多位获得图灵奖):1950年代CALDIC系统(Doug Englebart),1960年代Project Genie系统(Butler Lampson与Chuck Thacker),1970年代BSD Unix操作系统与INGRES数据库系统(Michael Stonebraker),1980年代RISC处理器(David Patterson),1990年代RAID存储系统与NOW机群系统……如果用一句话来总结伯克利的科研模式,那就是——热衷于研制真正能改变现状的原型系统,哪怕需要大量工程投入。”国重主任、国科大计算机学院院长孙凝晖院士称之为“科研重工业模式”。
3
“科研重工业模式”,
我们不想纸上谈兵,我们要用行动去实践
2020年,国科大首期“一生一芯”计划中诞生的“果壳(NutShell)”还是一个教学芯片,它主要是用来培养人才的,但是“香山”是一个面向产业界的、真正想要用到产业界的一种芯片。
国科大首期“一生一芯”计划的同学们在“香山”中承担了大量的工作,贡献的代码可能会有接近1/5,在首期“一生一芯”刚结束,他们就直接投入到“香山”的开发中了。他们其实才国科大研一,但他们原来在“一生一芯”计划当中锻炼出来的能力,在“香山”的开发当中发挥了重大的作用。可以看到,他们在这种更有挑战的项目中,真的是得到了更多的锻炼。第二期“一生一芯”计划的国科大2017级本科生陈国凯,在“香山”中也承担了一些验证性的工作。
在第二期“一生一芯”计划中,我们采用了一种新的架构,允许多个同学他们各自做自己的设计,然后我们通过技术上的架构,把这些芯片都可以集成到一起。从长远发展的角度来看,这样可以让每一位同学的成本降低。因为第一期“一生一芯”计划中每一位同学平均下来是5万块钱,那么第二期我们就可以降到2万以内了。
当然我们在第二期也遇到了一些新的问题,比如说我们让每一位同学自己单独做一个芯片,这种挑战比第一期合作芯片要更大,对学生而言他们可能会觉得有更大的压力。我们在后续的培养计划中,也会考虑两种方法相结合,既要能够培养每位同学他们独立的创造能力,同时也要加强他们多人协作的能力,我们会继续优化培养方案。
我们在开发“香山”的过程中,一直在强调流程、平台、基础设施的重要性。在团队中我更多是扮演了啦啦队队长的角色,而同学们则真正将理念落实到了具体行动。比如,为了更好地支持Chisel开发与调试,为了更快地捕捉、复现和定位bug,为了更准确地评估优化技术的性能收益,同学们开发十余种各具特色的工具。这些工具支撑起了一套处理器芯片敏捷开发的流程。当然,这套流程还比较初级,尚不系统化。我们也期待更多的开源开发者加入,一起完善这套敏捷设计流程。
本次RISC-V中国峰会将成为国内迄今为止规模最大的以RISC-V为主题的峰会(World Conference),这也是RISC-V第一次在北美以外地区举办这样规模的峰会。整个“香山”开发团队在RISC-V中国峰会上和大家分享22个技术报告。这些报告都是清一色的90后,很多都是95后,来自国科大和其他高校院所的这些同学们在“香山”的开发过程中做出了不可替代的贡献。
我想说,欢迎来国科大,和我们一起探索世界科技前沿!
关于“香山”
“香山”是一款开源的高性能 RISC-V 处理器,基于 Chisel 硬件设计语言实现,支持 RV64GC 指令集。在“香山”处理器的开发过程中,团队使用了包括 Chisel、Verilator 等在内的大量开源工具,实现了差分验证、仿真快照、RISC-V 检查点等处理器开发的基础工具,建立起了一套包含设计、实现、验证等在内的基于开源工具的处理器前端敏捷开发流程。
相关阅读:
看官可有什么想与国晓薇分享的?
投个稿告诉我吧~
投稿邮箱:wechat@ucas.edu.cn
观微之光,可明远方
文字/包云岗
整理/陆紫琪
图片/包云岗
美编/何邦彦
责编/谭君蕊
分享
点赞
在看