logo
people
本期封面人物:香山团队

香山团队:希望像 Linux 一样,先活个 30 年

来源:Gitee 封面人物 丨 2022-06-22

团队成员包括中科院计算所研究员包云岗、中科院计算所高级工程师唐丹、国科大老师和学生等共计 30 + 人(包含实习生),幕后还有几十位工程师提供技术支撑。

本期嘉宾

十二年前,加利福利亚大学伯克利分校实验室诞生了一种全新的通用计算机芯片语言。按照设想,这套指令能被所有芯片制造商使用,不属于任何公司。

它的名字叫做 RISC-V。近年来,在人才危机与地域冲突的大背景之下,RISC-V 由于其“开源开放”的特性在国内迅速崛起,越来越多的人参与到RISC-V 的生态建设当中。其中也诞生了许多创新的 RISC-V 开源项目。

香山团队: 团队成员包括中科院计算所研究员包云岗、中科院计算所高级工程师唐丹、国科大老师和学生等共计 30 + 人(包含实习生),幕后还有几十位工程师提供技术支撑。

香山开源处理器 :这是一款开源的高性能 RISC-V 处理器,立志向 Linux 看齐,希望能活个 30 年。

然而这样的愿景也带来风波与争议。一些将香山开源处理器视作为芯片技术翻盘点,国产芯片之光的言论也层出不穷。究竟事实如何?这群筑建者又是怎样看待开源与 RISC-V 生态?以下是 Gitee 与香山团队的对话:

香山江湖里的「师徒帮」

欢迎香山开源处理器团队来 Gitee 《封面人物》做客, Gitee 上的开发者可能听说过香山,但对项目背后的作者并没那么熟悉,可否请团队的各位先做个自我介绍。

「包云岗: 」 大家好,我是包云岗,中科院计算所研究员,现担任计算所副所长、国科大计算机学院副院长,是香山项目和“一生一芯”计划的发起人。

同时我也兼任中国开放指令生态(RISC-V)联盟秘书长、RISC-V 国际基金会理事和中国计算机学会 CCF 开源发展委员会副主任。

「唐丹:」 大家好,我叫唐丹,是中科院计算所高级工程师,目前在香山团队中主要担任产品经理和项目经理的角色。

「张林隽:」 我叫张林隽,中科院计算所硕士二年级的学生,曾经参与第一期“一生一芯”计划,目前在香山团队中主要参与 DCache 和缓存子系统的工作。

「徐易难:」 我是中科院计算所直博三年级学生徐易难,2020 年开始参与香山项目的开发,经历了两代香山架构的设计与迭代过程。

「张紫飞:」 我叫张紫飞,本科就读于中国科学院大学,也曾参加第一期“一生一芯”计划,而后成为香山的一员。

「王华强:」 我是王华强, 中科院计算所硕士研究生在读, 负责香山处理器访存子系统的设计,曾是第一期“一生一芯”的成员之一。

「张发旺:」 我叫张发旺,是深圳大学硕士研究生。研二研三期间曾在中科院计算所实习,参与香山项目。此前我没有体系结构的相关经历,香山是我在体系结构上的启蒙项目。

「徐易难:」 实际上整个香山团队还有很多其他成员,因篇幅限制在此就不一一介绍了。总的来说,目前香山团队的老师和学生共计 30 多位(包含实习生),幕后还有几十位工程师提供技术支撑,完成芯片 SoC 与后端设计。 男女比例的话,男生占了绝大多数,女生大概占不到 20%。

我们了解到团队中的唐丹博士是「半路出家」,从医生转行成为CPU架构师的特例,这实属一个较大的跨界。请问是什么吸引您做出这样的选择?

「唐丹:」 我是 2018 年 12 月到中科院计算所,正好赶上了一个恰当的时机。加入团队前并不了解包云岗老师的计划,只知道是在做 RISC-V 相关的工作;加入之后包老师对大家讲了 “三步走” (前往篇尾查看)的计划,并在前期做了一年多的准备,包括项目经费、团队等等。其实,我从医学转到计算机系统软件后来再转到 CPU 芯片没有经历太大的挑战,可能有两方面原因。

第一方面和个人兴趣有关。我从小就喜欢电子硬件系统,初中就自己组装收音机,高中就自学了大学的数电模电课程。也是个人兴趣的原因,改行之后一直处于沉浸其中的学习状态,因此没有承受很大压力和挑战。

另外一方面也和中科院计算所氛围有关。“计算所”以打造中国自己的计算机系统为目标,聚集了大批志同道合的伙伴,在这里可以互相促进迅速成长。我和包老师有很多共同的理念和想法,也是在包老师的影响下走上开源芯片这条道路。

这样看来香山项目背后不是几个人的打拼,而是一群人的奋斗,在项目推动过程中,遇到过最大的挑战是什么?大家又是如何克服的?

「包云岗:」 ‍在我看来,最大的挑战是从项目初期到最艰难的时刻,如何帮助团队成员渡过失去信心、陷入自我怀疑的阶段。我在香山团队中更像是“政委”,排除大家在思想上的困惑,凝聚起来,团结一致,攻坚克难。

实际上,在项目推动过程中,香山团队的整个心态也曾经历过山车式的起伏。前 3 个月属于 “信心爆棚期”,因为不到 3 个星期大家就完成乱序流水线的实现,已经可以运行 Coremark 程序;不到 3 个月就完成了可以运行 Linux 的六发射乱序处理器核的设计与实现。那时整个团队志气高涨,甚至有些过度自信。

然而,紧接着就进入漫长的验证和性能时序优化阶段,这个阶段看不到振奋人心的进展,更多的是不断发现原来的设计需要大幅修改,甚至推倒重来。这个过程是如此漫长,不断消磨着大家的斗志和信心,让人觉得没有尽头。

2021 年 4 月,香山团队爆发了一次“信心危机”。团队一些核心骨干开始怀疑香山项目,觉得和工业界相比香山就是“垃圾”。学生们也开始产生怀疑,从香山的技术方案到老师们的指导,再到怀疑整个项目的意义。我们连开了好几次会,确定了若干条总原则,比如强化“先完成、后完美”理念,遵循“不空口争论、用数据说话”,积极与业界专家交流获取反馈等等。彼时,我也和当时几位项目骨干单独沟通,鼓励和激励他们坚定信念。

就这样,我们在信心低谷期又前进了一段时间后终于迎来转折点。 2021 年 6 月的中国 RISC-V 峰会,我让香山团队提前做了详细安排和准备工作,目的就是让每一位参与香山项目的同学都能在峰会上展现自己。彼时,香山在峰会上正式公开,一下子得到国内外的积极反响,大家过去一年的工作也得到了认可,这无疑给处于士气低落的团队注入极大的信心和动力,也让大家对香山的意义与价值有了一个新的认识。

这种过山车式的心路历程,其实是香山团队非常宝贵的精神财富。“不经历风雨,怎么见彩虹”,只有经历过,才能有深刻的体会。一旦有过这样的经历和体会,再面对未来的困难和挑战,就会从容很多。

我们是开源爱好者,也是开源受益者

作为项目的发起人,我们首先和包云岗老师聊聊,您曾在媒体采访中谈到团队目标时提到:希望香山先像 Linux 一样,活个 30 年再说。我们很好奇,为什么会定下这样的一个目标?至今香山的目标或愿景是否有变化呢?

「包云岗:」 香山团队的成员几乎都是开源软件的爱好者和受益者。 我自己最早是在大学期间开始接触到 Linux,后来到中科院计算所上研究生时买了毛德操老师(国内知名计算机专家,浙大教授) 的《Linux内核源代码情景分析》,便开始“啃" Linux 源代码。Linux 对我自身的学习与后续工作都有很大影响,可以说是我的开源启蒙。

至于说,我们希望香山能活 30 年,是一种愿景。说实话我们也不知道它是不是真的能活 30 年。第一步是要让香山能被工业界真正用起来。我认为只有这样,香山才有可能真正活下来。 这个过程一定也会面临各种困难和挑战,但我们也会尽最大的努力去实现这个目标。

幸运的是,我们总能得到很多人的支持。比如说,前两代香山开发过程中,鹏城实验室和微核芯分别在后端物理设计与前端架构设计上给予大力支持。现在已有更多的企业参与到第二代香山(南湖架构)的产品化改造和第三代香山(昆明湖架构)的开发,这不仅是对香山项目的支持,更是给团队成员增强了信心。我们团队很多人都有一种共识, “让香山活下去,并能活上 30 年” ,这是一个值得用一辈子去实现的愿景。这个愿景,也是我们内心对 Linux 所表达崇高的敬意。

另外,这里还想预先埋一个彩蛋,毛德操老师最近在写一本新书,推荐大家关注,相信会发现一些惊喜。

如今不止芯片公司,互联网企业、科技企业纷纷自研造芯,对此,香山的优势或说竞争力主要体现在什么地方呢?

「包云岗:」 香山和这些企业并不是竞争关系,相反,是一种上下游合作关系。香山是处理器核,是一个开源的 CPU IP 核。很多企业研制的芯片是 SoC(系统级芯片),会集成很多 IP 核,一些企业 IP 核是购买其他公司的(比如 ARM 公司的 CPU IP 核),另一些企业的 IP 核是自己开发的。比如特斯拉的 FSD 自动驾驶芯片中集成了 12 个 ARM A72 CPU 核、1 个 ARM Mali GPU 核、2 个自研的 NPU 核,阿里平头哥的倚天 710 集成了 128 个 ARM 的 Neoverse N2 核等等。所以某种程度上, 香山更像是一个开源的 ARM,但现在和 ARM 差距还很大

香山的特点是开源开放。ARM 为企业提供 IP 核,但不会为企业提供修改IP的开发基础设施,比如各种架构模拟器、性能功耗评估工具、验证工具、测试验证用例等等。用户即使获得了 ARM 的 IP 核(甚至源代码),也很难根据自身的需要进行修改、定制或扩展,因为这需要一套 IP 核开发基础设施。但是香山不仅把源代码开源,而且把开发香山的一系列工具也开源了,这样更容易联合企业和机构联合开发。企业可以在公司内部也构建一套开发香山的基础设施,根据自己的需要在香山基础上进行定制修改。

这种开放性得到了不少企业的认可,但这种模式能不能在产业界存活下来并持续发展,说实话我们现在也不清楚,但我们认为这种模式值得去试一试。我们希望去探索和尝试,哪怕失败了,我们也会把这个过程总结为教训,告诫后来者们。

前面提到“香山的特点是开源开放”,那么开源对于香山意味着什么?

「金越:」 我是中国科学院计算所的研二硕士生金越,从 2020 年 6 月份香山项目正式启动开始就参与了香山开发的工作,也是“一生一芯”项目首期学员之一。

对香山来说,从深圳到北京,香山团队正在逐渐壮大,越来越多的开发者和企业参与其中。社区、各种媒体和业界人士中不乏对我们项目感兴趣的,开源的方式让很多大佬给香山项目贡献了代码。

我认为,开源的意义在于知识共享。可能香山的设计和业界相距甚远,但是我们把香山处理器开源,就是将过去的技术进行一个汇总和适应性重构,让开发者们知道这样的设计是可以流片并且能达到一个高性能跑分结果的。

这样每个人也能从别人的代码或者设计思路里大概了解一个高性能处理器的某个子部件是个怎样的框架。更重要的是,开源这种方式可以把“轮子”和“造轮子”的方式都共享到社区,开发者们不仅能使用高性能处理器的 IP,还能使用我们的工具加速自己的开发验证过程。当然,我们当下还距离这个目标有很多工作要做。

一次人才危机的产学研探索

香山「师徒帮」中的许多成员都是从“一生一芯”计划中走来的。这个计划诞生有什么契机吗?

「包云岗:」 2018 年 11 月 8 日的世界互联网大会上,中国开放指令生态(RISC-V)联盟正式成立。当天晚上,在乌镇的一家餐馆庆祝时,坐在我边上的一位老师问了个问题:“以后打算怎么做开源芯片生态?” 其实这也是在 2018 年期间我经常问自己的一个问题。当时我脑中常有一个较粗糙的想法——能不能让学生参与到开源芯片生态建设中。听了那位老师的问题,我的脑海又浮现出这个想法。于是在饭桌上,我一边整理思路一边介绍如何将教学和开源芯片结合起来,这应该是“一生一芯”计划的最初萌芽。

2019 年 5 月 16 日华为被美国列入实体名单,全国震惊。各界都在想能为华为做些什么,我们也在思考。跟华为专家交流后得知,相比短期内的需求,他们更需要的是中长期的先进技术,而最需要的是处理器芯片设计人才。人才问题,已经成为华为的心腹之患。
另一方面,为了分析国内的处理器人才现状。2017 年,我曾安排学生统计过 2008-2017 十年间体系结构顶级会议 ISCA 论文第一作者的情况,最后统计数据发现这些优秀人才 85% 选择在美国就业,仅有 4% 在中国就业,差距巨大。虽然中国对芯片人才的需求已经在快速增长,人才供给却远远跟不上。我认为这和国内很多大学不开展处理器芯片设计相关教学与研究密切相关。
事实上,类似的人才危机美国也曾经历过,1982 年全美上千所大学中只有不到 100 位教授和学生从事半导体相关的研究。为了应对人才危机,美国 DARPA 在 1981 年启动 MOSIS 项目,为大学提供流片服务,通过 MPW 模式大幅降低芯片设计门槛。40 多年来 MOSIS 为大学和研究机构流了 60000 多款芯片,培养了数万名学生。由此可见,降低芯片设计门槛,让学生能设计自己的芯片并流片,可大幅提高人才培养效率。这与我此前的构想和目标完全一致。我们不能再耽误了,要加速人才培养计划。

自此,在国科大支持下,我开始组建团队,招募学生,着手推动第一期“一生一芯”。

最初项目立项时大家都是怎么看待这个计划的呢?参与这个项目给你带来最大的收获是什么?

「张林隽:」 一开始听说“一生一芯”项目是我和另外几位同学找包老师聊毕业设计,包老师告诉我们的。他当时就说过,我们会是“第一批小白鼠”。那时,我感觉这是一个很有挑战性也有意义的工作,具体多困难也没有什么概念,对处理器核的理解也是停留在课堂实验上。

参与的过程也是一波三折。前期由于我的代码水平、参与合作大项目的经验欠缺,加上低估一些工作的难度,导致起步较慢。后来自己负责的模块性能倒退,同样也是经验不足导致无从下手,花费了不少时间和精力,甚至差一点没赶上流片的 DDL。所以说,参加“一生一芯”除了给我带来了技能的提升,更多的是心智历练以及态度上的转变,教会了我在面对自己未知的领域或者知识盲区时要怎样做。

「王凯帆:」 这个项目对于每一个计算机专业的同学都是一个梦寐以求的机会,具有很大吸引力。我们虽然在学校课程中进行过处理器设计的实验,但只停留在仿真或者 FPGA 平台上,没有流片的机会;而一生一芯项目提供了从处理器设计到验证再到后端流程最后流片的全程训练机会,虽然带着一丝自己是否有能力完成的忐忑,但总体是期待。能够带着自己设计的芯片毕业,这是非常有成就感的。

这个项目给我带来的最大的收获还是能力的提升。一生一芯的训练过程中是目标导向的,没有指导老师给出明确的指导手册,依靠同学培养出了独立思考问题、解决问题的能力。同时,一生一芯一期的成功也给我们很大的信心与鼓舞,让我们在后续香山的开发过程中面对困难时有了更多自信。

看来“一生一芯”是一个产学研结合的探索方式。2020 年,包老师曾在撰写了《伯利克科研模式的启发》一文,其中以伯克利计算机系的辉煌为例,强调了国内陷入了某些科研模式”唯论文至上“思维定势。请问,在经过“一生一芯”后,这种思维定势是否有什么具体的变化?目前的是否符合您对“产学研”融合的最初期望呢?

「包云岗:」 国内科研界很多人都在探索“破五唯”后立什么。需要强调的是,不“唯论文”并不等于不发表论文,论文对于科研来说还是很重要。“一生一芯”计划只是众多探索中的一种尝试,但我想“一生一芯”计划还是符合中国科学院大学(国科大)推崇的“科教融科”理念,我们是把开源芯片生态建设和芯片设计人才培养结合起来了。最近第五期即将开始,欢迎大家可以通过这个网站报名:http://ysyx.org/ ,报名“一生一芯”计划。

没能被业界应用,就称不上活下来

国内开源芯片仍处于起步阶段,坊间常有报道称 RISC-V 前景一片大好。对此,应该怎样看待这种实际发展速度与期望值暂不匹配的现状?

「包云岗:」 RISC-V 从诞生至今已有 12 年,受到很大关注。MCU级的 RISC-V 应用可以说非常繁荣,RISC-V 核的应用数量也在快速增长,保守估计国内每年已经有超过 10 亿颗 RISC-V MCU 级别的核被集成到各种电子设备中。只是大家似乎没有感知到,因为这类应用场景对软件生态要求很低,比如中科蓝讯规模量产的 TWS 耳机芯片就采用 RISC-V 核。所以说,RISC-V生态要进一步发展,还缺少展现 RISC-V 能力上限的标志性事件。这不仅是国内 RISC-V 面临的挑战,也是全世界 RISC-V 方向共同面临的难题。

对比现在的深度学习热潮,Hinton(2018年图灵奖获得者,深度学习三巨头之一)在 2006 年发表 Science 论文,并没有受到关注,直到 2012 年 ImageNet 竞赛夺冠才引起学术界关注。而深度学习真正引爆点则是 2016 年 AlphaGo 战胜李世石,这一次向全世界展现了深度学习能力的上限。这种里程碑式突破后续还不断出现,比如:1700 亿参数的 GPT-3 模型的诞生,DeepMind 的 AlphaFold 成功解析复杂蛋白质结构等等,都是在向世界展现 AI 能力的上限,给整个领域信心。

问题来了,RISC-V的能力上限在哪里?

总的来说,RISC-V 还是缺少像 “AlphaGo战胜李世石” 这样的标杆进展。虽然很多人看好 RISC-V 在 IoT 领域的应用,但 IoT 场景碎片化,在技术层面很难产生标志性事件。

我认为可以从技术层面梳理 RISC-V 领域可能出现的三种标杆事件:一是用 RISC-V 研制一台能够进入 Top500 前十,甚至更高的排名的超级计算机;二是用 RISC-V 做服务器芯片,在头部企业得到高效的规模应用;三是用 RISC-V 做一款量产终端芯片,比如PC、手机或平板,解决相应的软件生态问题,实现发货量达到百万级甚至千万级。

由于 RISC-V 的开放性,全世界范围内已有多方力量都在这三方面积极推进,其中也存在着竞争。不过这种竞争是构建生态过程中需要存在的积极要素,是正常的、合理的,也是应该鼓励的。就如 David Patterson 教授(2017 ACM 图灵奖获得者)在一个采访中提到:“因为 RISC-V 是开放的,我们将看到所有这些竞争。也许是由于所有竞争,我们开始在设计领域看到一些真正有趣的创新想法。”

RISC-V 诞生的十二年内,暂未诞生“扛把子”的代表性开源项目。但是知乎上或者媒体报道评论下出现一些对香山「神化」的言论。譬如称:香山是国产芯片的翻盘点。对此,您怎么看待与评价这类说法?

「包云岗:」 称“暂未诞生‘扛把子’的代表性开源项目”,这个说法是不合适。事实上,RISC-V 领域有很多优秀的开源项目,比如 UC Berkeley 开发的 RocketChip 开源项目,瑞士 ETH 开发 PuPULPino 开源项目,他们早就在全世界产业界和学术界被广泛应用。我认为这都是“扛把子”的代表性开源项目。

和他们相比,香山最大的区别是我们的定位是高性能开源处理器。 可能因为提到了“高性能”,所以被一些自媒体神化了。说实话,虽然是定位于高性能,但和 ARM 、 Intel 的处理器差距还是非常大,所以称“香山是国产芯片的翻盘点”,属于揠苗助长,对香山的未来发展很不利。

2021 年 6 月份香山公开发布后,我们看到有一些报道把香山有意无意地拔高和神化,当时香山团队就非常担心香山刚出生就被捧杀,所以我们不得不专门讨论该如何应对,后来撰写了一篇《澄清关于香山处理器的一些误会》,基于实事求是的原则,为了让大众客观地认识香山的真实情况,专门对广为流传的几处误会做出澄清。

在我看来,香山还是一棵小树苗,甚至有些弱不禁风,虽然我们希望它能活30年,但需要有更多人能加入进来,一起浇灌它、培育它。值得欣慰的是,过去一年香山确实得到了很多人的关注和支持,但它如果没能在产业界真正被应用起来,那就称不上活下来了。

接下来有商业化的打算吗?

「包云岗:」 我们希望香山能活 30 年,但有一个原则是始终维护一条香山开源主线,让它不断演进。唐丹老师和我其实都属于不在乎挣多少钱的人,我们俩有时一起聊天,聊着聊着就会一起发愿——如果能把开源香山做成,这辈子就值了。

但怎样才算把香山做成?我们都认为未来要有公司基于香山做出商业 SoC 芯片,就如 Linux 和 RedHat 关系一样。我们会把开源主线维护好,期望未来有越来越多的企业基于香山来开发商业芯片,同时也希望他们能像 RedHat 那样给香山开源社区反馈贡献。

开源生态建设过程中打造一个开放、自由的开源社区至关重要,对于当前国内开源生态有何看法?从实际经验来看,应该如何探索并打造这样一个开源社区呢?

「金越:」 香山项目是我们整个团队将近两年的心血,中间也受到很多媒体和流量的关注。我们不太希望有“国产芯片之光”这样的捧杀标签,我们更希望的是这些几十个人的心血能得到更多业界人士的关注,参与进来一起完成社区的完善和进步。

番外

您曾说过希望通过「三步走」的发展规划,在 2030 年实现构建国内的开源芯片生态的目标。如今整个团队正处哪个阶段?

「包云岗:」 “三步走”发展规划是在 2018 年 11 月 8 日中国开放指令生态(RISC-V)联盟成立大会上提出来的。2030“三步走”规划具体如下:

第一步:开源 SoC ——用 3-5 年为社区提供经过流片验证的高质量 RISC-V 开源核、开源 SoC 设计;(检验指标:RISC-V 处理器核 IP、外围 IP 等)

第二步:用开源工具链构建开源 SoC ——用 5-7 年逐步构建一套基于开源 EDA 工具链、开源 IP 、开源工艺库的开源 SoC 芯片设计流程;(检验指标:将商业版工具、 IP 逐渐替换为开源版;实现本科生用全开源工具开发开源芯片,带着自己芯片毕业)

第三步:用开源工具链自动化构建开源硬件——用 10-15 年开发更智能、更自动化的开源工具,提高设计验证效率,形成开源芯片生态,降低芯片开发门槛。

过去几年,整个团队都在按规划有条不紊地推进。但真正实施时,第一步和第二步是同步推进的,比如香山处理器核就是检验第一步的指标,“一生一芯”计划则是检验第二步的指标。目前,各方面进展都符合规划预期,相信不久大家就会看到参加“一生一芯”的同学可以用开源 EDA 来开发开源芯片,并完成流片,带着自己设计的芯片毕业。

封面人物小档案

  • 人物:香山团队
  • 开源时间:2021 年 6 月 22 日
  • 开发小插曲:在香山的开发过程中,每个人在服务器上有各自的目录空间。有时,有小伙伴发现界面的输入输出突然变得特别卡顿,服务器上的存储内容甚至以几个T的量级膨大,这个时候就到了熟悉的“抓内鬼”的环节。其实,这是因为有些成员在“跑”香山仿真时忘了关闭 log ,导致仿真过程中所有的 log 信息都被输出。当然这也只是偶尔。不过干了这事都会在开发群里被“公开处刑”
文章内容为受采访者独立观点,不代表官方立场。
本文版权属Gitee.com 所有,转载或内容合作请联系 git@oschina.cn , 未经授权不得转载、摘编或利用其它方式使用本文内容。违反上述声明者,将追究其相关法律责任。
bg

你可能感兴趣的封面人物

查看全部
发布评论前,请先 登录
精彩评论 ( 5 )

搜索帮助