《程序员》于 2000 年创刊,其理念为「技术改变世界,创新驱动中国」。2021 年,《程序员》2.0 全新起航,首期以「开发者的黄金十年」为主题,以音视频、图文专栏等丰富的多媒体形式为载体,立足当下,放眼未来,为读者带来全方位的技术和产业解读。
本文为《程序员》2.0 第一期内容,在 UNIX 开发者 Brian W. Kernighan、Vue.js 作者尤雨溪、TiDB 作者黄东旭等之后,我们采访到了 RISC-V International 首席技术官 Mark Himelstein,与他共谈 RISC-V 的成功之道。
作者 | 《程序员》编辑部
中国工程院院士、中国开放指令生态(RISC-V)联盟理事长倪光南曾说:“未来 RISC-V 很可能发展成为世界主流 CPU 之一,从而在 CPU 领域形成 Intel、ARM、RISC-V 三分天下的格局。”
与 CPU 龙头老大的 Intel、ARM 三分天下,谈何容易,可偏偏这个在 2010 年才诞生的 RISC-V 就有这样的势头。
作为目前为数不多的开源硬件,RISC-V 完全开放,基于广泛使用且标准十分宽松的 BSD 许可证,开发者可自由免费地利用 RISC-V 来设计 CPU,也能在原有基础上进行扩展。而最终的成果是否开源、是否商业销售,甚至是否要更换其他许可协议,全都由开发者自己决定。
如此人性化的设定,大大降低了芯片的研究门槛,使 RISC-V 被誉为“半导体行业的 Linux”,广受开发者欢迎。据分析机构 Semico Research 的《RISC-V 市场分析:新兴市场》报告数据,预计到 2025 年,市场将总共消费 624 亿个 RISC-V CPU 内核,其中预计工业领域将是最大的细分市场,届时将拥有 167 亿个内核。
那么 RISC-V 是如何实现这一成绩的?又是如何平衡开源与商业化之间的矛盾?带着这样的疑问,《程序员》特别对话 RISC-V International 首席技术官 Mark Himelstein。通过本文,或许我们可以走进 RISC-V 的世界,揭开这个“年少有为”的开源指令集架构的神秘面纱。
重点速览:
Mark Himelstein,于 2020 年 6 月正式任职 RISC-V International CTO。在此之前,他的履历也相当丰富:Heavenstone 公司的总裁、Graphite 工程副总裁兼 CTO、Quantum CTO、Solaris 开发工程副总裁,也曾在苹果和 MIPS 任职技术管理。
《程序员》:您在许多家公司担任过 CTO,请问您工作的原则是什么?
Mark: 这说不准,因为每个人不同时期会有不同的兴趣爱好。首先我喜欢技术,尤其是具有挑战性的技术。我接受 RISC-V CTO 这份工作的原因之一就是它能让我充分发挥重要的管理技能和技术才能。
2012 年我曾和一位前 UCSD(加州大学圣地亚哥分校)教授共同创办了一家公司,主要研究基于大数据和英特尔 CPU 的大规模并行存储。虽然这次的创业是以我们把它卖给了易安信(EMC)公司收场,但也因为这段经历,我清楚地意识到了一件事:我们可以让指令集渐趋完善。
后来,我们和一个名为芯片联盟(CHIPS Alliance)的非营利组织合作,保证在指令集的速度、性能以及特性的提升上提供更多支持,这也是我目前最大的爱好。
《程序员》:作为一个基金会的 CTO 最难的事情是什么?您又是如何去解决的?
Mark: 最困难的是我会不断面临许多意料之外的事情。不过还好,我比较有耐心,因此我只是希望这些事能尽快处理好,可以让我喘口气,明确自己该做的事,保证社区正在以稳定的步伐前进。
虽然从过去到现在,发生了许多事情,但我们一直在坚持做有意义的事,我只希望未来可以更快、更高效地解决所有难题。
《程序员》:人们可能会在担心变化,但是在某次采访当中您提到您是“变化贩子”,同时也乐在其中。可以和我们分享一下吗?
Mark: 我认为有些人,特别是那些一直在做同一件事情的人,他们在封闭的环境里面太久了。虽然他们依旧很聪明,也能够做出很好的东西,但可能因为不想像早期的研究者们那样承担不必要的风险,所以不愿意接受变化。
我过去也是这样的人。彼时我在使用 Sun 公司的 Solaris 操作系统时,Linux 才刚刚诞生,但我发现它非常重要,所以写了个程序把所有 Linux 命令合在一起,使其成为可用的构建环境等。不过当时有些工程师并不理解我的做法,还记我当时解释道,「你不去做,别人就会做,那么你就将失去为用户带来产品的机会。」此后他们就明白了其中的缘由,并一起参与进来,这也是当时我帮助组织度过难关的方法。
而现在我们需要换个角度来考虑问题,由于世界是变化的,所以我们也要与时俱进。我们现在在做的一件事就是,利用我在软件领域的丰富经验来平衡组织。我们现在有三个委员会和一个特别兴趣组织和任务团队来处理所有事情,范围包括从 ABS 到管理运行时间到编译器优化,因为这些领域每天都在发生不断地变化。在产品范围内,我们负责积极制定策略,他们则负责跟进变化、填补空白,并同步给我们方便有针对性地调整策略。
《程序员》:您认为需要和 Linux 基金会学习的最重要的一件事是什么?RISC-V 最吸引人的特点是什么?
Mark: 首先,我们学到很重要的一件事情就是如何去构建开源社区。我认为 Linux 基金会相当成功,通过对比 1990 年和 2020 年的 Linux,你会发现此基金会的成果令人惊艳:1990 年,如果你将 Linux 作为自己的操作系统,你可能会丢掉工作;2020 年,如果你不选择 Linux,你也可能丢掉工作。通过这个伟大的开源社区,Linux 创造了数量庞大的产品并产生了相当多的创新。
虽然与全软件的 Linux 不同,在硬件领域开拓新天地的 RISC-V 还是希望能在该领域“继承 Linux 的衣钵”。由于硬件的高级工程师非常重要却极为稀缺,因此我们将每个人的工作明确区分开,譬如,架构师的设计能在架构层面实现,开发者则负责完成生态系统的建设。整体而言,不管是编译器还是架构测试、建模、模拟器,或者操作系统等,都可以找到对应的技术人员。这是一场双赢,他们得到了业界的认可和经验,而 RISC-V 也得到了长足的发展。
我们对此非常感激,同时我认为 RISC-V 正在创造一个新的环境和工作模式,因为它打开了与开源软件相对应的开源硬件之门。
《程序员》:怎样才是一个好的社区?
Mark: 我认为归根结底,首先,能让人们盈利,为人们提供支持和帮助的社区就是一个好的社区。如果人们在一件事中一无所得,那就证明这件事也不是很重要。拿 Linux 举例,许多人就利用 Linux 获取了收益,有的靠提供服务,有的靠提供基于 Linux 的服务器。总之,Linux 成为了他们盈利的基础,同时这也促进了开源中商业意识的发展。
其次,参与社区贡献的人,要拒绝重复「造轮子」,坚持不断创新。如果你很早就向开源贡献了自己的成果,这就等同于你把时间和精力用在进行构建并提出价值主张上,这对你的业务而言有着独一无二的价值。但社区中总会有一些人有所保留,直到最后才肯发表意见,即便在 Linux 社区中也存在这样的现象。
我们与人合作的真正目的是积极主动地做出贡献、有建设性地互帮互助,这样才会带来一个很好的社区。在此基础上,社区就能帮助人们盈利,比如完成指令集的扩展等。
《程序员》:对于开源商业化,之前大家的态度是犹豫怀疑,有些人还认为开源不应该用来赚钱,也赚不到钱,而现在大家发现通过开源项目商业化也能够反哺社区,更好地促进开源发展,形成良性循环,您怎么看待这个问题?
Mark: 我认为这是我们整个世界资源的优化。比如,我们可以盘点一下整个世界的资源,如果有 100 家公司都在做同样的事情,那简直就是在浪费资源对吧?所以这就有些愚蠢了,因为随着时间的流逝,每个人都会知道该怎么对这些事做加减乘除。
另外,我们为什么总要创造一些新奇却空洞的东西?明明我们可以把时间用在一些更有意义的事情上,比如如何实现这个时代的更适用的芯片之类。举个例子,美国有 4 个不同的蜂窝网络,我觉得这就浪费了国家的资源,也没有创新的余地。如果让所有人都支持一个就好了,因为虽然这个过程看似兵分四路,最后却朝着同一个目标,不过是殊途同归。
可能也有些人不想让每个人都去创新,他们或许认为许多人做一件事会产生良性竞争。但 Linux 教会我们的是,如果你选择分享成果而不是让每个人都做一样的事情,你将拥有更好的机会并会节省资金。
《程序员》:请问您如何评价 SiFive?
(注:对于有能力自己定制芯片的科技公司,RISC-V 是免费开源的;但也有很大一部分资源不足的中小型公司,他们会有偿委托 SiFive 来采用 RISC-V 架构设计量产芯片,在这种情况下 RISC-V 就变得商业化)
Mark: 首先我们对 SiFive 表示感谢,它的创始人非常棒:Krste Asanovic、Yunsup Lee 和 Andrew Waterman。他们各司其职,让 RISC-V 真正地开始兴起。其次,他们免费为开源社区做了大量工作,他们为上游项目带来了很多贡献,甚至有人说 SiFive 对我们的投入就像公司刚成立时期重要人物给公司投入的一般。
在 2016 年只有十几家公司愿意这样对我们,现在我们已经得到上百家公司的支持了,他们彼此之间合理分配并负责不同的角色。反之,我们也确保能够理解他们,因此目前我们正在经历一个选举周期,对于长期担任同一职位的人们进行重新选举,给予其他人成为领导者的机会,并尽力保证每家公司在做出关键决策时最多只有一票,这样就能将权利真正分散。这样的话对于一家公司来说,不管以怎样的形式,负担都不会太重,而这也是 SiFive 最擅长的地方。
所以我们必须承认,SiFive 的创始人们真的非常聪明。我们经常一起开会,或发邮件联系,他们也很慷慨友善,非常乐于和社区合作并分享他们的技术。
《程序员》:RISC-V International 如何赋能开发者、企业甚至是国家和地区?
Mark: 我认为开源社区(而不是软件或硬件)的标志之一就是赋能。我们没有设定任何限制,所有人都可以根据需求使用或多或少的 RISC-V 指令集,也可以针对其增值领域进行定制。因此,如果你是专门研究低功耗的 SoC 提供商,可以重点关注一下我们的开源社区。在社区中,你无需重复所有工作即可完成基本算术或类似的工作;你可以和其他人分享成果;有一些相关组织在进行设计和设计验证(DV,Design Verification)等工作;还有一些商业实体会提供 IP(Intellectual Property)或者真实的芯片。利用这些资源,你可以通过解决方案等实现快速起步,加速公司的成功。
关于开源社区还有一点十分清楚,那就是它打破了公司与公司、国家与国家之间的壁垒。从西班牙的巴塞罗那到中国的上海,我们社区的人遍布世界各地。在社区中,我们都只是一群工程师,在努力创造最棒的产品、做有意义的事情、尽可能不去注意或与政治相关联。我们就像在一起工作的同事,一起创造并分享很棒的故事。
《程序员》:RISC-V 如何改变世界?
Mark: 我们还没有完全改变世界,但我们期待改变世界,并为此奠定了基础。虽然之前有些大型公司也开源了一些芯片,但这些芯片都需要公司的继续支持才能成功。然而,真正在开源中诞生,并拥有如此大规模开源芯片的,我们是第一个。这种拥有所有权的自豪感与拥有 Linux 的私有权一样,会推动人们去做更有意义的事。
目前我们正处在可以见证历史上所有指令集的工作和风险的阶段,因此我们从中汲取经验,重新赋予指令集足够的灵活性和可扩展性是我们改变世界的方式。从很小的嵌入式应用程序到超级计算机,甚至在更有意义的事上,RISC-V 指令集都可以支持。这种与众不同的灵活性和可扩展性,意味着 RISC-V 拥有满足定制化需求的能力,可以方便人们根据需求添加扩展。
《程序员》:如果存在 RISC-VI,您最期待什么特性?
Mark: 其实我刚加入 RISC-V 的时候,就闹了一个关于 RISC-VI 的笑话。David Patterson(大卫·帕特森,图灵奖得主、RISC-V 基金会创始人之一)当时对我说:“Mark,你还不理解。我们是要让 RISC-V 持续 50 年,并具有可扩展性,这就是我们要构建属于自己的架构的原因。我认为你不必去期待 RISC-VI,你需要关注的是我们在 2021 年、2022 年、2023 年要做什么,有哪些新兴市场会对 ISA 、芯片组和计算机有哪些不同的需求。”
所以现在,RISC-V 就是筹码,不管接下来会发生什么;不管我们需要做什么或要支持什么新兴技术;不管我们的社区真正需要什么,都有一个基础性的 RISC-V 允许我们在其之上进行增添。所以不必重复这种努力,我们可以继续在 RISC-V 上添加各种想要的东西。
《程序员》:RISC-V 在设计上有怎样的挑战,可以和我们分享一些经验吗?
Mark: RISC-V 的设计几乎处处都是挑战。毕竟如果没有挑战,我觉得人们可能也不太愿意去做。所幸我们有个非常庞大的社区、拥有 230 余个组织和上千位优秀的贡献者,也因此,想让他们实实在在地推进输出就是最大的挑战。
不过机遇与挑战同在。这些聪明的人,之前从事过其他架构方面的研究工作,他们经验丰富,知道自己该做的事情,因此我们所能做的,就是保证社区中沟通顺畅,确保社区能有效产生输出,让成员永远可以在社区讨论,维持高质量的对话水平。
不得不说,这是一个很大的挑战,不过事实证明,这也是我工作的亮点之一:让社区中来自不同时区、不同文化、不同语言、不同国家的优秀人才凝聚在一起,让他们自然而然地去尝试和探索,真正专注在该做的事上。
《程序员》:在您的求学生涯和生活当中,谁给您的影响最大?
Mark: 有两位我想要感谢的人:
两位先生都是很棒的导师,在工业界也做出了很好的事情,我对他们非常感激。
《程序员》:对于硬件工程师,您有怎样的建议?
Mark: 我的建议是,永远都要明确自己的价值主张。别把自己当成全能人才,把所有的事情都做了,也不要想着一蹴而就这种不太可能的事情。
试着去做一些对你而言容易处理的事情,然后最重要的是专注,专注,专注!这不仅是 RISC-V 的优势之一,同时也是我们希望传达给人们的。因为在社区中分享了自己的成果后,人们就可以开始关注自己的能力和客户的需求。
《程序员》:对于创业的人们,您有怎样的建议呢?
Mark: 首先,你必须保持专注,然后找到一些提升自我价值的东西。我的建议是,如果打算开一家公司,首先要弄清楚自己的价值定位,可能是成本、规模或者产能。然后专注,不要尝试做所有的事情,选择那些你懂得如何做好和如何盈利的事。
《程序员》:最后,您想对中国的读者和开发者们说点什么?
Mark: 我从 90 年代后期开始来中国,那时候我还在 Solaris,对中国的教育水平、信誉水平和产品质量印象深刻。我认为随着时间的推移,情况只会越来越好,我们与中国公司以及中科院、RIOS 等机构都是非常重要的合作伙伴。作为企业家和发明者,他们对我们“怎样实现如此大规模开源”的话题感到好奇和兴奋,这些我都非常感激。
我想说的是,参与进来,找到你真正热爱的东西并真心投入进去,让我们一起前进,改变世界。
从 Unix 开发者 Brian W. Kernighan,到 OpenCV 创始人 Gary Bradski,再到 Vue.js 作者尤雨溪……《程序员》2.0第一期以「开发者的黄金十年」为主题,与多位国内外知名的技术领袖和新锐代表进行了深度对话,希望为中国开发者打开新时代的「机遇之窗」。
除了技术引领,我们也希望透过技术对行业进行深入洞察。因此,《程序员》2.0 第一期也邀请到了来自快手、滴滴、贝壳找房、作业帮等知名企业的技术负责人,用案例实践为读者阐述直播、出行、居住、在线教育等多个行业变革背后的技术架构和技术引擎。