打印
[应用相关]

开源高性能RISC-V处理器“香山”面世背后披露,为何舍弃Ve...

[复制链接]
6163|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
2021年 在首届RISC-V中国峰会上,中科院大学教授、中科院计算所研究员包云岗公布了国产开源高性能RISC-V处理器——“香山”。


香山处理器的目标是通过持续优化达到A76的水平。


以下是 原文【开源高性能RISC-V处理器“香山”面世背后】

22号下午关于香山的报告,因为Zoom直播出现了技术故障,导致大家未能听到完整的报告,稍有些遗憾。考虑了一下,这里就把报告PPT直接贴出来,再加上我们在香山开发过程中的一些考虑和想法,跟大家分享。

这个报告主要回答四个问题:
  • 一、为什么要做香山?
  • 二、香山什么水平?
  • 三、香山怎么做的?
  • 四、香山未来如何发展?

一、为什么要做香山?
1.2010年RISC-V诞生,迄今已有11年。如今,在RISC-V国际基金会网站上登记的各类商业或开源的RISC-V处理器核就有上百个(如下链接),为什么还要做一个开源的高性能RISC-V核?

RISC-V Exchange: Cores & SoCs - RISC-V International

https://riscv.org/exchange/cores-socs/


对于这个问题,我们和很多业界企业交流过,也做了很多调研与分析,这都让我们判断认为业界需要一个开源的高性能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年!

于是,“香山”诞生了。



使用特权

评论回复
沙发
一刀一级|  楼主 | 2022-4-25 14:47 | 只看该作者


2. 我们做了一年多的准备工作——申请经费,启动“一生一芯”计划培养人才,建立团队,寻找合作伙伴……这期间得到了太多太多人的支持和帮助:计算所孙凝晖院士帮我们多处找经费,国科大全力支持“一生一芯”计划,鹏城实验室支持我们建立起后端物理设计团队,多位计算所老所友毅然决定参与开源主线等等,就不一一列举了。

终于,香山正式启动了——2020年6月11日,香山在GitHub上建立了代码仓库。

短短的的一年时间里,25位同学和老师参与了香山的开发。821次主分支代码合并,3296次代码提交(commit),5万余行代码,400多个文档,记录了香山的成长过程。我们的理念是代码开源、流程开放、文档公开。这期间,有企业直接参与开发,也有企业表达参与意向,都因为认同开源理念,愿意一起来共建开源的香山。这些来自工业界的积极反馈,给与我们极大的鼓舞和信心,让我们更坚定地去践行“科研重工业模式”。

“科研重工业模式”,是 2020年1月我为《中国计算机学会通讯(CCCF)》写了一篇卷首语《伯克利科研模式的启发》中提出的:

袁岚峰: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机群系统……如果用一句话来总结伯克利的科研模式,那就是——热衷于研制真正能改变现状的原型系统,哪怕需要大量工程投入。国重主任孙凝晖院士称之为“科研重工业模式”。
“科研重工业模式”,我们不想纸上谈兵,我们要用行动去实践。







使用特权

评论回复
板凳
一刀一级|  楼主 | 2022-4-25 14:54 | 只看该作者
5. 我们基于GitHub CI构建了一套流程化的自动回归测试框架,并在过去大半年不断增加测试负载,从cputest,risc-tests到Linux,到SPECCPU workload。这套自动回归测试框架在保障和验证芯片的正确性。



每个大项目总会有一些激动人心的时刻,这段30秒的小视频记录了香山在FPGA上启动Linux/Debian的时刻,略带喜感。


三、香山怎么做的?
6. 香山开发初期速度非常快:6月11日建立代码仓库,7月6日乱序流水线便已完成,能正确运行CoreMark,不到一个月时间;9月12日,Linux正确启动;10月22日,Debian正确启动。

接下来便是大半年的结构优化、性能调优、时序优化工作,香山架构几乎相当于重构了一遍。一个典型的例子,香山的第一版分支预测器(BPU)参考了BOOM的BPU,但后端评估频率只能达到800MHz(TSMC 28nm)。于是负责BPU设计的勾凌睿在几位老师的指导下,不断优化BPU结构,最终将频率提升到了1.4GHz。

这期间,小伙伴们纷纷自己动手,开发了各种各样的优化和调试工具,大大地加速了优化和验证环节。这让我真心佩服这批90后——他们真是充满了创造力,从工作到生活,而主要驱动力之一就是“省(tou)时(lan)”。比如宁可自己写个程序自动点外卖,也懒得打开手机看菜单点。







使用特权

评论回复
地板
一刀一级|  楼主 | 2022-4-25 14:55 | 只看该作者
7. 香山的开发至少有两个重要的决策,第一个便是选择敏捷设计语言Chisel。很多人质疑Chisel,排斥Chisel,但是我们在充分评估后,还是决定使用Chisel。

我们团队是在2016年开始使用Chisel,一开始组里也充满质疑。2018年,我们设计了两组定量的对比实验,找了2位同学用Chisel、1位工程师用Verilog分别设计一个L2 Cache模块。通过一系列量化对比,得出了如下三个结论:

  • Chisel开发效率远高于Verilog;
  • 实现相同的功能,Chisel代码量仅为Verilog的1/5(因此香山的5万行Chisel代码相当于25万行VeriloG代码);
  • Chisel的开发质量不比Verilog差。

后来将实验结果发表在2019年1月的《计算机研究与发展》。最近去华为交流,才知道这些对比结果也推动了华为内部组建了Chisel开发团队,如今华为也是Chisel的支持者

2020年,我们又基于Chisel完成了一款8核标签化RISC-V处理器的流片,这是基于Rocket处理器核进行了标签化体系结构改造,采用TSMC 28nm工艺流片。虽然因为时间紧张,并没有进行细致的后端优化,但芯片返回后也还能正常运行在1.2GHz。这是一颗有一定复杂度的8核SoC芯片,但Chisel能应对。所以,我们相信Chisel可用来开发复杂芯片



8. 在开发香山的过程中,我们团队积累了丰富Chisel开发经验。小伙伴们(徐易难、王凯帆、蔺嘉炜、余子濠、金越)准备了6个报告,将会在6月25日的CCC Workshop上和大家分享。




使用特权

评论回复
5
一刀一级|  楼主 | 2022-4-25 14:56 | 只看该作者
9. 另一个重要决策就是高度重视构建支持敏捷设计的流程与工具。


我们在开发香山的过程中,一直在强调流程、平台、基础设施的重要性。我更多是扮演了啦啦队队长的角色,而小伙伴们则真正将理念落实到了具体行动。


10. 为了更好地支持Chisel开发与调试,为了更快地捕捉、复现和定位bug,为了更准确地评估优化技术的性能收益,小伙伴们开发十余种各具特色的工具。这些工具支撑起了一套处理器芯片敏捷开发的流程。当然,这套流程还比较初级,尚不系统化。我们也期待更多的开源开发者加入,一起完善这套敏捷设计流程。


11. 下面举几个工具的例子。NEMU是由余子濠在南大本科时便开始开发的一款教学模拟器。在计算所读博期间,他凭借一人之力一直在持续改进和优化NEMU,使NEMU成为一个效率接近QEMU的高性能解释器——启动Debian甚至比QEMU还要快18.2%(9.87s vs. 12.07s)。

更重要的是NEMU是指令解释器,可以针对每一条指令进行动态分析;相比而言,QEMU的翻译粒度是基本块,无法跟踪每一条指令。事实上,NEMU的这种指令解释器机制,成为了香山开发中正确性验证框架Difftest的基础。(余子濠将会在6月23日下午介绍NEMU)











使用特权

评论回复
6
一刀一级|  楼主 | 2022-4-25 14:59 | 只看该作者
20. 香山是在中科院计算所、鹏城实验室的支持下,通过中国开放指令生态(RISC-V)联盟联合业界企业一起开发一款开源高性能RISC-V处理器核,也得到了北京智源人工智能研究院的支持。在此,要特别感谢北京微核芯公司的资深专家给予香山的开发强力的支持,他们非常认同开源理念,也是第一家与香山联合开发的企业。很高兴“南湖”架构的开发有了更多的合作伙伴,感谢对香山的支持。

欢迎联系我们一起加入香山开源社区!






香山团队部分成员在RISC-V中国峰会合影
五、花絮
  • 一本关于香山的书。很多人觉得CPU设计很难,很高大上,我们倒是希望能把这个门槛给降一降——所以打算出一本类似伯克利的《TCP/IP协议栈详解》和毛德操老师的《Linux内核源代码场景分析》那样的书,结合香山的源代码来分析CPU设计细节和诀窍(know-how)。这本书也可以用开源的方式由社区一起撰写,欢迎感兴趣的朋友一起参加。
  • “一生一芯”计划的回报。首期“一生一芯”计划的五位同学(金越、王华强、王凯帆、张林隽、张紫飞)在本科一毕业便加入了香山的开发,成为了技术骨干。很多人都问他们什么时候毕业,可能需要再等等了。他们现在才研一,还要再等两年才会有同学毕业。
  • 疫情中的封闭开发。2020年6月初,北京新发地忽然出现了新冠疫情,导致同学们都无法回到北京。感谢深圳鹏城实验室的大力支持,整个团队全部集中到深圳,在鹏城实验室集中了三个月的封闭开发。那段时间基本上每周都有超过150个commit,反而成为开发效率最高的一个时间段。
  • 香山的**。我们尝试了很多个香山**设计,最后经过大家投票选择了左下角的那个方案。不过有朋友好心告知香山的红叶主要是黄栌叶。好在香山也有五角枫,暂时就先定这个**了。



最后几句
有幸和阿里巴巴的戚总(戚肖宁)一起担任首届RISC-V中国峰会的联席大会主席,但其实幕后是中科院软件所和上海科技大学的老师们为这次峰会的筹备和保障工作付出了巨大的努力。

由于疫情带来极大的不确定性,组委会始终保持高度紧张状态:一开始只开放了大约1500位线下参会名额,但很快就报满了;后来又开放了两次补报机会,但每次也只开放了200个名额,最后一共是2600人次(有的同时报名参加主会和分会)。

但即使如此,最后因为广东那边的疫情原因,不得不安排大家远程参会。在此,对未能报上名的朋友说声抱歉,对报上名但因为疫情而选择放弃现场参会的朋友道声感谢。不过这次峰会提供了4个直播渠道,全程直播101个报告,并在后续会有视频回放。很抱歉直播中间也遇到了一些技术问题(有些上午调试好了下午还出错),在此再说声抱歉。

特别感谢中科院软件所的吴伟老师和武延军老师,他们为筹备这次峰会而殚精竭虑,真的付出太多了。感谢上海科技大学信息学院周平强院长,协调上海本地各方资源,全力支持和保障峰会的顺利召开。也要感谢所有为峰会默默付出的筹备组成员和志愿者们!

大家因RISC-V而汇聚到一起,正是因为RISC-V所带来的开源、开放、共享、共治是大家的共识,也是因为RISC-V为我们带来了无限的想象空间。如今,RISC-V已在中国蓬勃发展,中国也在RISC-V生态中贡献越来越多的力量——首届RISC-V中国峰会就是最好的写照。






使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

344

帖子

0

粉丝