马建仓有话说
著名哲学家梁漱溟师长西席晚年口述一书中提出了一个问题:这个天下会好吗?敏锐的哲人有他的回答。开源界也有类似的疑问。"都说开源改变了天下,那么开源让天下变好了吗?"

2013 年的夏天,Gitee 正式上线。我们以「代码」会友,至今汇聚了中国本土 800 万 + 开拓者,携手走过了 9 年光阴。迈向第十年,我们想要向大家供应属于 Gitee 的回答。

目前我们没法轻易说出准确答案,不同人的见地、经历以及体会存在差异,回答自然不同。但是开拓者是我们的底色,开源是运行的逻辑。想要回答这个问题,须要从开源开拓者的角度出发。或许只有理解真实的开拓者在开源过程中的所见所做所想,才能找到这个答案。
以是这一次,我们决定将焦点转向开拓者,以记录者的身份,成为开拓者的条记,讲述程序员技能生活的所见所闻所想,关于开源的统统故事,共同探寻”开源让天下变好了吗?“的答案。只要你在 Gitee 上开源,有精彩的开源故事,有关于开源的独特见地,你都是我们关注的工具。
首期《开拓者条记》记录了一群共同培植 RISC-V 生态的开源爱好者。他们和所掩护的开源处理器“喷鼻香山”,立志向 Linux 看齐,希望能活个 30 年。我们曾经在喷鼻香山团队 - Gitee 封面人物中以核心人物的形式展现开源项目背后的掩护者。本期,我们将从每一位开拓者的视角讲述喷鼻香山项目开拓过程中的心途经程、项目背后的八卦故事,供应关于喷鼻香山团队的回答。
师父传真功一场关于开源指令集 RISC-V 的创新产学研实践正在中国科学院打算技能研究所和中国科学院大学进行。
人才危急的产学研探索包云岗:我是中科院打算所研究员,现担当打算所副所长、国科大打算机学院副院长,是喷鼻香山项目和“生平一芯”操持的发起人。同时我也兼任中国开放指令生态(RISC-V)同盟秘书长、 RISC-V 国际基金会理事和中国打算机学会 CCF 开源发展委员会副主任。
2018 年 11 月 8 日的天下互联网大会上,中国开放指令生态(RISC-V)同盟正式成立。当天晚上,在乌镇的一家餐馆庆祝时,坐在我边上的一位老师问了个问题:“往后打算怎么做开源芯片生态?” 实在这也是在 2018 年期间我常常问自己的一个问题。当时我脑中常有一个较粗糙的想法——能不能让学生参与到开源芯片生态培植中。听了那位老师的问题,我的脑海又浮现出这个想法。于是在饭桌上,我一边整理思路一边先容如何将传授教化和开源芯片结合起来,这该当是“生平一芯”操持的最初抽芽。
202108.北京.喷鼻香山团队与微核芯的老师
2020 年 6 月 11 日,在中科院支持下,联合鹏城实验室和微核芯一起开拓了开源处理器喷鼻香山项目,并正式建代码仓库。2021 年 6 月 21 号在中国 RISC-V 峰会上正式对外公布,而 2021 年恰好是 Linux 出身 30 周年。
大学研讨课上的创新实践张科:我是中科院打算所高等工程师张科。2016年春季学期开始,我在中国科学院大学讲授本科生的《打算机组成事理》理论及配套的实验研讨课。为方便传授教化和实验设备管理,我带领打算所科研工程团队研制了一套具有 FPGA 可编程算力的在线实验传授教化云平台,同学们可以随时随地地在云平台上开展大略单纯处理器核的设计与验证。
2019 年 8 月,国科大打算机学院启动了“生平一芯”开源处理器传授教化流片实践项目操持。我有幸参与了这个传授教化实践的创新过程,也见证了许多“生平一芯”学员从教室到实验室的蜕变,他们已逐渐成为名副实在的处理器设计专家。未来我希望与传授教化团队进一步夯实打算机系统方向理论课、实验研讨课与拔尖实践项目的有机衔接和贯通式实践演习,为我国集成电路与处理器芯片人才培养进行更多有益的探索和考试测验。
重工业科研模式须要通力协作唐丹:我是中科院打算所高等工程师,目前在喷鼻香山团队中紧张担当产品经理和项目经理的角色。管理事情在科研中也很主要。包云岗老师倡导的“重工业科研模式” 的特点是具有明确的技能目标且须要大量的科研职员通力协作。在统一的技能目标情形下,管理事情与科研事情相对随意马虎折衷和领悟。
帮学生探求思路,而非办理Bug解壁伟:我是中科院打算所助理研究员解壁伟。“生平一芯”的目标是,培养学生的打算机系统能力与处理器芯片设计能力,并将其融入到学生培养的各个环节,鼓励学生主动探索和积极实践,供应关键节点的勾引,勾引学生探求思路,而非帮学生办理 Bug。
同时,也希望参与该操持的每位学生能通过亲自实践,实现“设计出自己生平中第一颗芯片”的目标。“生平一芯”提倡开源开放的理念,探索以开源社区的运营办法,依赖 Web 平台和助教群体,扩大组织规模。
202109.生平一芯.后端
余子濠:我是从中科院打算所博士毕业的余子濠。“生平一芯”的很多同学都是从零根本开始学习芯片设计,不仅节制了芯片设计能力,还具备了独立拆解和解决问题的能力,后来加入“喷鼻香山”团队和开源社区,或在不同的企业和学校连续从事芯片方向的事情。每位学生的学习记录和实验报告都是公开可见的。我们会定期剖析和谈论同学们的学习记录,剖析大家碰着的问题,逐步改进传授教化和组织流程。
徒弟好修行如何成为开源项目的贡献者?
本科课程的机缘张林隽:我是中科院打算所硕士二年级的学生。最开始进入组里演习,是由于大三选了包云岗老师的操作系统课,由于某次作业做得还不错而被包老师认识;当时刚开始学习组成事理、体系构造之类的课程,觉得自己对这一领域也挺感兴趣的,以是就来包老师这里演习,后来也参与了首期"生平一芯"。
这个项目之后我就开始准备毕设,也是基于“果壳(NutShell)” 开展的。毕设尾声,唐丹老师见告大家会开拓一款开源高性能 RISC-V 核,给大家拉了一个微信群,就很自然而然地成为了“喷鼻香山”团队的成员。
蔺嘉炜:我和林隽一样,也是中科院打算所硕士二年级的学生。读本科的时候,我对 CPU 非常感兴趣,便在大二和大三的时候根据课程学习和教科书写了大略的顺序流水线处理器和乱序处理器。但是当时常常被 CPU 启动 Linux 时由于未知 Bug 挂掉所困扰,于是就在探求更好的调试方法。
这时,恰好理解到了打算所包老师团队正在做的干系事情,尤其是组内余子濠师兄开拓的 difftest 框架和NEMU仿照器。这些根本工具能够快速定位 CPU 的缺点点并大幅提高 CPU 以及对应操作系统、运用程序的调试效率。
此外,我在西北工业大学读本科的时候,理解过 Chisel 这门措辞,大二和大三写的 CPU 全是用 Chisel 完成的。而喷鼻香山团队是当时海内险些唯一一个在深入的利用和推广基于 Chisel 的敏捷开拓的科研团队,这两点让我以为需求比较契合,末了在大三放学期有幸通过保研加入了包老师的团队。
张紫飞: 我是喷鼻香山团队的一员,也是包老师的学生,目前是中科院打算所直博二年级学生。大学时候比较迷茫。没有方向,就只能跟随大众的脚步。身边一些同学,对打算机有着强烈的激情亲切,他们很早开始就随着老师搞科研、参加比赛。我们之间的差距变得越来越大,这让我更加迷茫。不过由于操作系统成绩比较好,也产生了一点自傲,就来包老师那里科研演习了。只是当时只是看看论文,跑跑实验,大部分韶光都在“划水摸鱼”。
202109.生平一芯.前端
后面听说了“生平一芯”操持,为了提升自己,我鼓起勇气报名参加。虽然“生平一芯”的目标只是一个小核,但是对当时能力比较弱的我来说,压力还是很大。幸运的是,我也从中学到很多。不仅是知识上的丰富,更多的是学习习气,项目同步和互换能力的提高。由于有了“生平一芯”的历练,参加喷鼻香山的时候,才能够更加从容。
王华强:目前,我在中科院打算所硕士二年级读书。大四的时候通过各类渠道得知包云岗老师组正在内部筹办第一期“生平一芯”, 和导师互换后加入“生平一芯”项目。之前曾经操持去做一些存储系统干系的事情, 不过由于参加了这个项目, 方向发生了巨大的变革(笑)。
落地毕设的机会
勾凌睿:我是在中科院打算所读博士一年级的勾凌睿。研一放学期集中传授教化结束后,我回到组里开始干活,很高兴能参与到喷鼻香山核开拓,由于这样我终于能把本科毕设的内容在真实处理器上实现了。我还记得本科打算机体系构造的实验课内容是写一个五级流水的 MIPS 处理器,当时在过程中体会到了一些乐趣,于是对这个项目更加期待。
邹江瑞:我是深圳大学硕士三年级的邹江瑞。本科专业是软件工程,打仗的大都是软件开拓的干系知识,期间也产生对打算机底层的实现的好奇,如:电脑上各式各样的软件如何在真实硬件中运作等问题。读研选择导师时我就想找一个打算机体系构造方面的导师,恰好遇上了蔡晔老师,之后他先容我去鹏城实验室演习。当时有两个研究方向选择,一个是开源 EDA 方向,另一个便是开源芯片方向,我很快就决定选择更贴近打算机体系构造的开源芯片方向,之后就加入了喷鼻香山团队。
研究瓶颈的机遇刘彤:我是中科院打算所的工程师,在项目中紧张卖力 SoC 系统验证,IP 验证和前后端代码交付等。我不是科班出身,本科读的是商学院,这是我第一次参与芯片设计开拓,但在全体项目中的收成是十分巨大的。
项目的过程中,我碰着了许多困难,最紧张的是全体系统的繁芜性超出了最初的预估。我还记得,在喷鼻香山回片后,PCB 和芯片初版先送到了我的手上,由于恰好遇上春节前期,如果自己不能按时完成系统启动,将会影响全体喷鼻香山的调试操持。那段韶光我从一个小白被迫变成了可以看懂电路图,调试板卡的入门选手,同时还要常常去华强北买各种配件进行测试,想尽办法验证一个又一个的预测。如今,我已被喷鼻香港科技大学(广州)录取为电子信息方向的博士生,即将开始攻读博士学位。
张传奇: 我现在是中科院打算所直博四年级的学生。参加这个项目前我在做标签化体系构造的干系事情,重点研究的是如何用软件硬件结合的手段给多核运用供应 QoS 的保障。当时,喷鼻香山急需人手我就中断了研究来帮忙喷鼻香山开拓,现在喷鼻香山已有稳定迭代的版本。
踩坑实录程序员的生平,不止要写出很多 Bug,还要 Debug。
在 Bug 与 Debug 之间反复横跳周意可:我是南京大学直博一年级的学生。在开拓的过程中,最常踩的“坑”是:自己实现的功能一开始通过了根本的测试,但一段韶光之后就暴露出了猜想之外的 Bug。
最初系统输出的日志/波形实在是太多,完备不知道怎么 Debug,只能碰尝尝看,在自己以为可能有问题的地方改一改。如果碰着猜不到的 Bug,那就束手无策了。
202106.喷鼻香山于上海处理器中央
为理解决这个“坑”,我一方面找了履历丰富的大佬们请教,收成了大量调试的心得,紧张是定位 Bug 的思路;另一方面也花了不少韶光学习处理器整体的事情事理,理解主要模块的事情过程。随着项目推进,自己也办理了一些 Bug 后,对自己的 Debug 能力越来越自傲了,尤其是在调试新 Bug 的时候,也不会担心找不到问题了。
张发旺:我是深圳大学硕士三年级的张发旺,研二研三期间我曾在中科院打算所演习,参与喷鼻香山项目。
喷鼻香山初版"雁栖湖架构"设计尾声时,仿真还不是特殊稳定,跑程序调试时还是会报错,那时起我开始投入大量韶光 Debug。由于前期设计都只关注自己的设计模块,处理器内所有的构造并不熟习,调试进度很慢,有时候一天都在找一个 Bug。但是“慢便是快”,调试过程中不断跟踪信息,能打仗到各个模块,逐步摸清处理器里模块间交互,建立起了一个比较系统的视角,对这个过程的觉得从呆板变得有造诣感,很多处理器构造和敏捷开拓的迷惑也在这个过程中茅塞顿开。
李乾若:我是中科院打算所硕士二年级的李乾若。以前我对芯片设计没什么观点,就看各种科技新闻/评测以为高性能 CPU 挺故意思的。来了之后才创造比想象中的繁芜很多。现在的压力紧张取决于项目情形,有 DDL 时压力比较大,写出了 Bug 找不出来也会有压力。
技能说服要讲证据王凯帆:我是中科院打算所直博二年级的王凯帆。项目开拓过程碰着的寻衅实在很多,我以为最大的寻衅是,随着开拓的不断深入,大家意识到高性能处理器的设计空间非常大,很多设计思路不分对错,只是一种权衡。
每个人可能都有自己的想法和判断,常常会产生技能上的抵牾与辩论,相互也难以说服对方,导致一些优化无法推进、结束不前。为理解决这样的问题,我们大家后来形成了共识,便是要探求证据(比如性能剖析结果、其他处理器参考设计等)来进行客不雅观谈论;如果证据不充分,那么就实际动手把一种方案或多种方案实现出来,通过实际表现来判断思路的精确性。
新手不能总是纸上谈兵谭佳展: 目前,我是北京大学硕士三年级的学生。在喷鼻香山中,我紧张卖力了一级数据 Cache 的预取模块设计事情。单就预取事情而言,之前并未实际做过,于是开始去广泛阅读与硬件预取干系的论文和资料。
我花了大量韶光在理论的剖析、不同算法的选择、不同硬件背景下的剖析上,以至于实际开拓工程迟迟没有动手。后边在喷鼻香山组的其它同学提醒下,他们做工程都是先考试测验着设计一版初步的,然后再不断改进。而我总想是先把理论上的问题彻底研究明白了,再去动手一次性完成,只是这样下来一是耽搁了开拓韶光,二是错过了通过实际开拓仿真中暴露出问题对深入理解理论的机会。
202106.嘉兴会议
万事开头难,只要有了初版预取模块,把基本框架搭起来,后边再逐步进行性能调优就好了。作为当时刚接手喷鼻香山的新手很随意马虎陷入纸上谈兵的田地,这也算我碰着的最大寻衅吧。
开源与我开源给我带来了什么?
Linux 是我的开源启蒙包云岗:喷鼻香山团队的成员险些都是开源软件的爱好者和受益者。我自己最早是在大学期间开始打仗到 Linux,后来到中科院打算所上研究生时买了毛德操老师(海内有名打算机专家,浙大教授)的《Linux内核源代码情景剖析》,便开始“啃" Linux 源代码。Linux 对我自身的学习与后续事情都有很大影响,可以说是我的开源启蒙。
至于说,我们希望喷鼻香山能活 30 年,是一种愿景。说实话我们也不知道它是不是真的能活 30 年。第一步是要让喷鼻香山能被工业界真正用起来。我认为只有这样,喷鼻香山才有可能真正活下来。 这个过程一定也会面临各种困难和寻衅,但我们也会尽最大的努力去实现这个目标。
开源共享“轮子和造轮子”金越:我是中科院打算所硕士二年级的金越。我认为,开源的意义在于知识共享。可能喷鼻香山的设计和业界相距甚远,但是我们把喷鼻香山处理器开源,便是将过去的技能进行一个汇总温柔应性重构,让开发者们知道这样的设计是可以流片并且能达到一个高性能跑分结果的。
这样每个人也能从别人的代码或者设计思路里大概理解一个高性能处理器的某个子部件是个若何的框架。更主要的是,开源这种办法可以把“轮子”和“造轮子”的办法都共享到社区,开拓者们不仅能利用高性能处理器的 IP,还能利用我们的工具加速自己的开拓验证过程。当然,我们当下间隔这个目标还有很多事情要做。
只有开源才能让我放心周耀阳:我是中科院打算所直博五年级的周耀阳。我算是个开源爱好者。除了喷鼻香山以外,我比较关注 GEM5 仿照器,由于这个是我进行研究的主要工具。个人爱好方面,我比较关注 Android Open Source Project (AOSP),尤其是 Pierre-Hugues Husson (PHH) 的treble项目。我也给 PHH 发过 patch。我的手机的操作系统常常都是自己编译的,至少是可以获取源码的。由于手机是一个可以得到非常多隐私的渠道,只有开源的、可以亲自进行源码审查的操作系统才能让我放心,它有没有盗取隐私、悄悄上传、滥用监控。
我认为,不仅操作系统、芯片这些关键的根本举动步伐该当开源来确保不陵犯用户隐私,而且现在最盛行的推举算法也该当开源。由于推举算法会通过信息流影响人的天下不雅观。只有对商业公司的推举算法进行审查,才能确认他们是否通过推举算法来为用户建立成瘾性、塑造群体意识。
“搬砖”日常喷鼻香山科研人的"搬砖"记录。
师生之间的「传声筒」是必要的徐易难:目前,我是中科院打算所直博三年级的学生。刚开始参与喷鼻香山项目时,我只是一个普通的研一学生,没有项目履历,也没有做过这么多人之间沟通折衷的事情,一开始只能硬着头皮考试测验去做。
在项目过程中,我更多的是一个传发话器的角色。由于老师们比较忙,没有那么多韶光精力来安排所有的细枝末节,以是就由我来把老师们的一些安排详细地传达到学生团队里面。然而,这样导致韶光不足分配,一方面我须要参与喷鼻香山项目的开拓,另一方面须要处理一些日常的沟通折衷事务,常常涌现白天花了很多韶光做其他事情、晚上才有大段空闲韶光写代码的情形。但是,在我看来,沟通折衷实在是任何一个项目组中都须要有人来承担的事情,团队是须要培植与掩护的,拥有融洽的事情氛围、共同努力目标的团队会有更高的事情效率。
正反馈让我感到快乐张紫飞:参加喷鼻香山的经历总体上是非常快乐的。由于我们一贯在创造,不断有新的进展,新的正反馈,也能感想熏染到自己的进步。很怀念最开始开拓喷鼻香山的时候,那时北京涌现新冠疫情,我们就全体到深圳鹏城实验室封闭开拓了三个月。那段韶光,我们一起从零开始,每天都在学习新知识。研究生入学之后,须要两边跑,既要上课,也要开拓喷鼻香山,节奏就开始不可控。附近期末,课程压力迎面而来,那时确实是压力最大的时候,这种压力更多是身体上的压力,不是精神上的压力。
202007.喷鼻香山于鹏城实验室
王诲喆:我是中科院打算所博士三年级王诲喆。参与喷鼻香山的过程中打仗许多高端平台,比如 Cadence 的 Palladium Z1 仿真加速器、Synopsys 的 HAPS FPGA 原型平台以及搭载市情最大逻辑资源的 FPGA 芯片 VU19P 的原型平台。我也学习到了很多平时难以打仗到的知识和工具。在进行 FPGA 全部系验证的时候,我根据自己善于的办法,选择直接运行 Linux 以及内核自带的正式的驱动程序来测试外设 IP 模块。办理了一些边缘问题后,看到系统立时就可以运行较为繁芜的网络程序和硬盘(SD卡)操作,感想熏染到了一种一通百通的觉得。
喷鼻香山扎根向上发展刘志刚:我是喷鼻香山初版项目 L1 DCache 还有 L2 Cache 的卖力人刘志刚,2021 年 6 月从中科院打算所硕士毕业后加入了阿里平头哥半导体做 GPGPU 架构设计。我在喷鼻香山项目待了一年,在工业界也待了一整年了。我认为,喷鼻香山项目对付我个人投身芯片家当是有决定性影响的。
在这个项目中,我找到了做处理器的寻衅,造诣感以及乐趣。也培养了从事芯片架构必备的根本能力。曾经面对详细的领域中详细的问题时,也不知道该若何灵巧组织手头的这些理论工具,通过喷鼻香山项目这个繁芜困难而又详细的工程技能难题,我逐渐把 feature 都实现一遍,对它们的 PPA 有观点了。同时也将这些点组织成框架了,能更系统地看待处理器的设计与实现了。这对付我进入工业界大有裨益。
通过喷鼻香山项目的演习,我现在在平头哥 GPGPU 团队里,是少数几个能从框架的 CUDA 代码一起剖析到硬件模块的性能问题的人。
在项目过程中,包老师一贯在给我们讲长期主义,做妙手头的事情,不要急着当作果,相信做好的每件事情都会在未来的某一天产生积极的影响。这些理念,在项目过程中,乃至在我在公司的这一年,都在几次再三应验,我对此也笃信不疑。我曾经不想写的 HTML 作业,还有许多无疾而终的项目,虽然没有产生任何直接成果,但它们都是有代价的,都会在未来的某个瞬间,成为你的某个灵感,成为你的履历,开释它的代价。开拓开源处理器喷鼻香山的这些日子,让我从一个兴趣导向,心情起起落落的神经刀(球迷用语,指发挥不稳定)选手,变成了负任务的心态平和的芯片事情者。









