11 月 3 日,2022 云栖大会 RISC-V 专场于杭州云栖小镇圆满结束。特别邀请了平头哥、高校师生、统信软件和麒麟等合作伙伴,一起探讨 RISC-V 在嵌入式、桌面、高性能、和边缘等场景的应用和实践,以及一起讨论 RISC-V 的发展现状和未来趋势,以下是本次圆桌讨论详细内容:
本次圆桌的嘉宾:
阿里云的资深技术专家宋卓(主持人)
麒麟软件有限公司的资深产品经理仇瑞
统信软件技术有限公司内核研发专家占俊
中科院软件所 PLCT 实验室项目总监吴伟
奔跑吧 Linux 的作者笨叔
宋卓:当前,RISC-V更多的是在端侧的应用,如果要向数据中心层面演进,还需在哪些方面进行完善?
笨叔:RISC-V 从诞生至今一直在高速发展,短短几年时间的出货量已经达到 100 亿颗。要走进数据中心,个人认为需要在以下几个方面不断完善:
第一,硬件生态。目前能够做高性能RISC-V处理器IP的龙头企业,国外有SiFive公司,国内有平头哥和香山。SiFive目前为止官宣性能最高的 CPU 的 IP 为p650,相当于 ARM 的 Cotex-A77,其公开资料显示,最多支持 16 个核心,然而用作数据中心还远远不够。RISC-V SoC 的总线生态目前尚无建树,因此我希望RISC-V的厂商可以联合起来,构建自己的 SoC 总线生态。同时,内存访问、网络性能、存储性能、数据库性能、虚拟化性能以及数据安全等也需要持续推进。主流的数据中心服务器厂商最近几年在虚拟化、数据安全、加解密、 AI 加速、网络加速、存储加速等方面做了很多优化和尝试,而 RISC-V 在以上方面仍处于起步阶段,离芯片部署和应用还很远。到目前为止,尚没有厂商真正做出一款基于 RISC-V的服务器,任重而道远。
第二,软件生态。软件生态和硬件生态的发展相辅相成,软件生态需要完善的内容甚至更多,比如常见的 Linux 内核、GCC 编译器。除此之外,可能还需要优化虚拟化和语音相关的开源软件,比如docker、kubernetes,网络加速方面的软件栈、AI软件数据库等也都需要做特殊的优化和性能调优,需要投入巨大的人力和物力。
总体来说,我认为 RISC-V 进入数据中心的前景充满光明。
占俊:数据中心或高性能计算需要有背后创新的动力,每个领域都有自己独特的需求,而RISC-V的模块化设计和可定制指令能够满足新产品的要求。因此,RISC-V想要进入数据中心领域,并不一定要在Arm的基础上进行革新,而是可以针对更新的场景发力,比如新算法的硬件知识或新的扩展能力。
仇瑞:从现有的实践经验来看,从 Arm v8 走向Arm v9,我们才真正看到了 Arm 走向数据中心的曙光。Armv8 时代有很多厂商经历了失败,而 RISC-V走到现在,迭代速度依旧很快。Arm在发展过程中遇到的障碍,在 RISC-V走向数据中心时,是选择规避还是走向更新的架构调整,是我们需要思考的。只有真正走向商用、大规模推广,很多问题才会被从业者发现。开源是 RISC-V 的活力所在,但是由开源转向商业的过程,也是 RISC-V 从开源社区走向真正的商业数据中心过程需要考虑的问题。
吴伟:通常情况下,我们默认讨论的都是中间最大的一颗 CPU ,但数据中心可能有数百万个节点,RISC-V正在通过“农村包围城市”的方式,先慢慢渗透小的节点,再逐步占领更大的市场。
从传统 CPU 的角度来看,大多厂商不可能在短时间内决定选用RISC-V。但是如果 Arm 能够成功替换x86 的 CPU ,则意味着ArmARM 能够被 RISC-V 替换。这也表示,Arm的成功会导致自身市场的丢失,这是新的商业模态,会导致Arm等传统CPU的护城河将不再存在。
技术方面,数据中心现在大多被托管。而托管中存在的关键技术点在2022年已经实现,即Java 的执行环境,它已于2022年被 Oracle Open JDK 社区接收,意味着所有社区可以自然而然地获得 RISC-V 的支持,这是一种潜移默化的影响。预计1-2年后,最上层的应用(前提为用Java语言编写)能够从x86 无缝切换到RISC-V,使得尝试新产品的成本接近于零。
云计算方面必须有虚拟化的支持,而RISC-V 当前存在的不足在于 hypervisor 的扩展目前只是草案,导致硬件厂商不敢流片。我们预计该问题将于 2023 年解决, 2024 年可实现芯片的完全铺货。
另外,RISC-V也拥有无限的优势。它定义了自定义指令的空间,具有无限的可能性。x86和Arm的指令编码点有限,但是基于RISC-V做打底,服务器底层甚至可以不是 RISC-V,可以通过自由指令增加大量差异化的与数据中心相关的指令,可以无限“套娃”。同时,Arm 和x86也好在上层模拟用户态的 RISC-V 时,运行时的二进制转换开销非常小,使得用户的迁移成本接近于零。
宋卓:RISC-V是否能成为未来中国自研芯片的主流?
笨叔:目前,国内大部分 985 高校和部分 211 高校计算机相关专业的核心课程已经逐步从原来的 Linux 和 x86 转向 RISC-V,高校对 RISC-V 的热情能够为产业界输出大量人才,对国内自研芯片的发展起到推动作用。
另一方面,目前国内的芯片厂商大多都采用 Arm 的 IP ,但已经有不少厂商开始慢慢尝试采用 RISC-V。比较一致的观点为,虽然 RISC-V 软硬件生态还不够完善,但它在未来几年一定会高速发展,因此越早布局 RISC-V 能够在未来得到越多的市场。今年,英特尔也在布局 RISC-V ,加入到 RISC-V 基金会,年底将发布一款RISC-V的开发版。
我相信会有越来越多的芯片厂商以及上下游厂商逐渐加入 RISC-V 的布局。在不久的将来,RISC-V一定会成为国产芯片的中流砥柱。
占俊:目前,国内存在多种 CPU 架构,而过多的架构可能在未来会造成资源的分散,导致若干年后中国依然缺乏在全球市场上与Arm和x86 竞争的能力, CPU 仍然受制于人。因此,大力发展RISC-V的产业生态,加大对RISC-V的开源设施的建设,可能是一条出路。我也相信,未来RISC-V会成为一种主流芯片的架构。
仇瑞:伴随着国产软硬件自主化的过程, RISC-V 的出现确实掀起了一定的热潮,但国内相关领域的人才从某种角度上来说依然较为匮乏。软硬件技术越接近底层,人才的培养周期越长。厂商过多加上人才分散,前期可能会展现一片宏伟的景象,但是持续发展几年时间后,最终可能会聚焦为几个主流的 RISC-V IP 厂商,再衍生出很多 SoC 厂商,形成最终的生态。
吴伟:在 2025 年之前,RISC-V一定会在全球范围内成为继x86和 Arm之后的三大架构之一。而中国是世界的一部分,中国新的 CPU 一定是 RISC-V 占绝对主导。有能力开发核心软件或库软件的开发者非常稀有,不仅是在中国,在全世界亦如此。 RISC-V 成功的关键并不在于设计上有多么优秀,而是在合适的时间找到了合适的商业模式,用指令集完全开放的授权、模块化的设计吸引了很多足够优秀的开发者来持续贡献。因此,RISC-V真正有了蓬勃发展的趋势后,很难被再次替换或被超越。我相信RISC-V一定会成为国内的主流。
宋卓:RISC-V 软硬结合是否有优势?具有哪些优势?
笨叔:RISC-V架构的优势在于开源开放、免费的指令集和架构的授权,这是其他商业指令集无法具备的优势。近年,RISC-V的软硬件生态虽然已经取得了很大进步,Linux 内核、 GCC 编译器、Android系统等主流开源软件已经开始逐步接受 RISC-V 补丁,但依然不能与 Arm 的生态相提并论。RISC-V开放开源的特质一定会吸引很多上下游厂商主动贡献力量,发展前景不可估量。
占俊:AIoT 时代已经来临,智能化的应用场景和万物互联的生态对芯片市场有着巨大的需求,特别是中国在智能化和物联网方面具备先发优势。但中国芯片的核心技术一直受制于人,RISC-V将成为国产芯片自主发展的良好契机。RISC-V是模块化的设计,可定制指令在轻量级的应用场景上能够更好地发挥软硬结合的优势。特别是在物联网时代,芯片的架构需要轻量化发展,要满足各种不同的应用场景,RISC-V更具优势。
仇瑞:RISC-V的优势在于开源和灵活性。开源和灵活性能够促成软硬结合,单纯的硬件不会面向客户,而是必须搭载软件才能最终面向客户,而通过软件来作用于硬件,紧接着再进行模块化设计的调整,从而实现产品更多的能力,这确实是RISC-V的优势。
吴伟:RISC-V、Arm和x86中,只有RISC-V能实现软硬结合。这是RISC-V与另外两者本质上的无法相提并论,并不是“优势”二字所能概括的。
Q:自己在硬件上增加指令,自己优化编译器,会不会造成上层软件的分裂?比如想用某款硬件,则必须要使用它的交叉编译列。
吴伟:RISC-V 留了很大一部分的编码区域用于自定义指令。如果在遵守 RISC-V规范的基础上进行指令集的扩展,则公版编译器编译出来的程序可以在芯片上直接运行,只是没有使用用户的特定指令。比如龙蜥的所有程序能够在哪吒D1上运行,D1的自定义扩展 vector0.7.1遵循了 RISC-V 的设计标准,保证了最基本、最通用的兼容性。
另外,如果自己设计的指令集没有遵循 RISC-V规范,占用为未来指令扩展预留的空间,则可能会出现不兼容的情况。
Q:RISC-V的模块化在硬件、编译器以及各种软件上,能否做到像内核模块一样,在运行时进行patch加载,而不是提前将整个 SDK 先将模块进行加载、编译?
吴伟:编译器在编译时,一份代码可能会生成很多份二进制,这多份二进制是针对不同的 CPU 配置生成不同的二进制序列。即使是x86的计算库,也会做运行时的判断,启动时加载库,加载时会判断 CPU 的 flags 是否存在 SSE 指令集。如果存在,则加载时即会加载支持 SSE 的二进制函数实现。更高端的比如 avx512 指令的扩展,在加载时会将带有avx 二进制的实现加载进功能里。这已经非常成熟的编译器技术,是函数级的,在二进制有多个版本,根据 CPU 的属性加载。
宋卓:从以前做主板或 CPU 的架构演进到现在的DPU架构,很多计算的能力被分散到不同的硬件里,不同的硬件承载不同的能力。RISC-V 是否能在此基础上做得更加模块化、更加灵活,值得期待。从x86、ArmARM转向RISC-V,在软件移植方面我们需要进行哪些工作?
笨叔: IoT 场景下,软件比较碎片化而且相对封闭,每个设备厂商都有自己的软件实现。国内外有不少的IoT OS 厂商会提供 RISC-V 版本的微内核IoT OS;手机场景下,主要为Android和苹果。苹果相对封闭,传闻苹果正在考虑和评估 RISC-V,Android最近也在逐步接收 RISC-V 的相关补丁,从 demo 到量产,还有很长的道路要走;PC 场景下,主要为 Linux 的各种发行版,目前各大 Linux 发行版都在紧锣密鼓地支持 RISC-V。最近国内有厂商正在做一款基于 RISC-V的笔记本ROMA,相信它的出现会对 PC 软硬件的生态发展起到强有力的推动作用;服务器场景下,同样需要芯片厂商、服务器厂商、OS 厂商一起努力做软硬件生态方面的优化,需要有几家规模较大的公司持续在软硬件方面不断进行投入。
占俊:做好生态的确是一件非常有难度的事情,需要上百家生态厂商的参与,但是生产厂商们会从各自利益来决定在软件研究方面的投入,这对RISC-V软件架构的兼容性和扩展性提出了很高要求。另外,在软件方面要提供足够多的底层工具,比如跨平台的编译器、统一的框架平台,生态软件承接商也需要大量的产业投入。在RISC-V的推广过程中,可能需要通过模拟器或底层转码器来支持业务软件,并在性能上做一定的优化。需要积累足够多的用户,才能撬动足够多的厂商来投入。
仇瑞:软件的移植由开发者完成。目前多线程编译依然存在问题。Arm、x86走向 RISC-V的第一步一定是跨架构编译链的成熟。逐步走向商业的过程中,不同厂商对于同一领域的诉求不一样,希望衍生出其他架构来辅助应用实现,而架构的实现又是很庞大的工作。实现架构后,再到应用,再优化、落地,整体移植过程十分漫长。因此我认为,开发者先投入到编译链工具,可能对于后续的发展更有推动价值。
吴伟:我直带领两个团队在做软件移植方面的工作,我们将开源软件和商业软件区分开,商业软件又再分为体系结构相关和无关两个部分。与体系结构无关的商业软件只需要用 restart 工具链重新编译即可。体系结构相关的软件,如果不是用户态,而是涉及到特权态的情况下需要根据架构做专门的条件判断;如果要使用专门的体系结构相关的加速,需要像OpenBLAS软件一样,针对英特尔的 avx扩展指令实现子过程。大多公司可以较为轻松地在 RISC-V上实现同样的功能,但是如果想要达到同样的商业竞争力,还需要有专家针对 CPU 上的 vector 扩展或 DSP 扩展写一个库。
而开源软件是人类知识产权的共同体,PLCT实验室作为中科院的一部分,必然责无旁贷。
本次的圆桌谈论到这里就结束了,但是龙蜥社区 RISC-V SIG 前进的脚步才刚刚开始。龙蜥社区联合平头哥、中科院 PLCT 实验室、统信软件、麒麟软件等合作伙伴一起打造了基于平头哥最新 RISC-V 产品——无剑 600 SoC 的软硬件全栈平台,并首次适配了云上操作系统 Anolis OS。未来,龙蜥社区 RISC-V SIG 会秉持 RISC-V 开源开放的理念,继续联合各大合作伙伴推进 RISC-V 走向繁荣。欢迎感兴趣的小伙伴扫描下方二维码入群,一起探索RISC-V前沿技术~
关于龙蜥峰会 RISC-V 专场课件获取方式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。
【视频回放】:视频回放已上传至龙蜥官网:https://openanolis.cn/video查看。
已在陆续上传中,欢迎大家观看。