RISC-V,这个长期以来一直依靠MCU逐渐成长的架构,终于逐渐迈向高性能计算——采用RISC-V内核的笔记本电脑、服务器、万兆交换机正逐渐实现商用。伴随着RISC-V从低端走向高端,“生态建设”成为该行业内优先级最高的一件事。
一如RISC-V中国峰会主席、中国科学院软件研究所副所长武延军所说,早期并没有太多人去谈生态,是因为早期的RISC-V处理器主要集中在MCU(微控制单元)这个层次,它的生态非常有限,甚至可以说“不存在生态”。当处理器能力提升,大量的软件可以跑在上面,生态才会真正地显现出来。
而当谈论生态的时候,讨论的重点应该是什么呢?RISC-V该如何实现生态共建呢?
“我们要不断提高RISC-V的天花板”
要建设生态,首要工作是使RISC-V在更多、更高端的领域用起来。以此为RISC-V生态建设提供更大的空间。
长期以来,RISC-V一直在“摸着Arm过河”。许多RISC-V厂商的目标是:Arm能做的事情,RISC-V也能做。从现在来看,这项工作在MCU这种较为低端的领域已经实现了显著进展。武延军表示,在MCU领域,RISC-V对Arm实现平行替代已经没有任何问题了。
有了这个基础,RISC-V的下一步该往何处走,也就是该如何触达甚至抬高RISC-V生态的天花板?
北京开源芯片研究院首席科学家包云岗在接受《中国电子报》记者采访时表示,最好的方式是找到增量的生态。在新的生态中,不论是x86还是Arm都没有形成主流地位,RISC-V可以和他们在同一个起跑线竞争,其开源的优势便更容易发挥出来,可以联合全球更多力量快速构建和发展出自己的生态体系。
对于这个新的增量生态,包云岗提出了“汽车自动驾驶”这个关键词。他认为,可以从汽车自动驾驶领域切入,再逐渐向其他传统领域拓展。
高算力是RISC-V增量生态的另一个关键词。
北京算能科技有限公司提供的支持数据中心应用的服务器,既给采用RISC-V做高性能计算提供了样本,也开拓了RISC-V编译方式的新道路:过往做RISC-V开发很多采用的是交叉编译的方式,也就是用两台机器,一台是x86开发的机器,在上面写程序、做编译,要用交叉编译的选项,目标代码是RISC-V。在编译完成之后再把代码烧录到RISC-V的开发板上。而算能科技此次推出的服务器算力可以做到源生编译,也就是把程序放在自己的机器上编译,编译完成后直接在本机上运行。这样就给开发者提供了非常大的便利。
当前,AI算力需求不断增长,带动了GPU、AI加速卡等专用算力产品的增长。包云岗表示,AI算力需求的增加也离不开通用计算的支持。“我们把一个真正应用级的程序(应用)分解出来看,虽然AI占了其中一部分,但还有大量的运算需要在总CPU上运行。”
当前大模型训练与推理,需要大量数据迁移,因为数据量远大于单个算力卡的存储空间的容量。这样一来,部分数据在CPU中运行,同时还有大量的数据需要进行迁移,数据需要从内存加载到算力卡中,算完之后再迁移出来。面向这个场景,如果RISC-V能够具备更好的I/O(输入/输出)加速能力、数据迁移能力,实现更高性能,便可以实现加速大模型训练。
当前,大模型的发展给数据传输速度和计算芯片带宽提出了更高的要求。对此,包云岗提出,如果能够将RISC-V内核处理器结合AI加速器集成到一张芯片中,就可以改变当前这种通过很长的PCIe(高速串行计算机扩展总线标准)总线实现长距离迁移的模式,进而可以实现带宽的提高。
“提升在软件生态体系的发言权”
RISC-V作为一种芯片架构,天生地会带有软件属性。
在RISC-V发展的前几个年头,发展软件是优先级最高的事项。RISC-V第一发明人Krste Asanovic教授曾表示,从2020年开始,软件就成为了最重要的事情,RISC-V进入由软件驱动的发展模式。
工具链是RISC-V软件建设的首要前提。对于芯片来讲,必须要有编译工具链才能将其指令集的特性发挥出来。当前,工具链有两种供应方式。一种是厂家自己开发,提供私有工具链,也就是推出一款开发平台,相应地提供一套对应的工具链进行匹配。另一种是打造公共工具链。在武延军看来,打造公共工具链对于RISC-V来说是更为合适的一种方式。
从几年前开始,中国科学院软件所开始做RISC-V源生操作系统。该操作系统除了要做众多内核的适配外,最重要的是要做相对应的编译工具链。
武延军表示,中国科学院软件所在GCC、ALVM(开源的架构编译器框架)上做了大量的指令集后端实现,既为RISC-V内核设计者提供在讨论标准时提供依据,又允许内核设计者反馈标准制定过程中存在的问题,帮助标准制定更加合理。中国科学院以此为抓手,帮助RISC-V工具链日臻完善。
当前,工具链建设的参与方越来越多,其功能也日趋完善。Google的Android开源版本AOSP已经把RISC-V当成官方支持的指令集架构。武延军表示,今年9月,中国科学院软件所会推出OpenEuler RISC-V版本,这将是OpenEuler第一次把在x86和Arm之外把RISC-V作为官方支持的指令集。
这些进程都表明,RISC-V在软件生态建设的道路上将越走越快。
面向未来的生态建设,武延军给国内的软件企业提出了“积极参与开源代码贡献,向主流上游软件贡献代码”的建议。
武延军表示,IT的生态是有软件放大效应的生态,虽然有时候为开源RISC-V软件生态做建设看似没有直接的收益,但如果中国企业写的代码能够进入主流的系统代码中,就可以产生非常好的广告效应,从而能极大地提升该企业在RISC-V软件生态中的发言权。
另外,如果代码得到了主流软件厂商的支持,例如某RISC-V公司设定的处理器代码进入了Linux内核,便能够得到GCC编译器、LLVM编译器的支持。这样一来,最终使用RISC-V的开发者就不需要再从原厂商处得到技术支持,因为主流的软件能够支持,意味着开发者直接从主流社区下载、编译、运行即可,这将大大降低厂商技术支持的压力。
“开放性和合作是最重要的”
中国工程院院士倪光南给RISC-V提出的愿景是:“三分天下有其一”。
但从现在来看,想要实现这个愿望还存在较大的差距。
“举个简单的例子,若是想用RISC-V做手机芯片,如何将手机上已经适配的900万个APP迁移过来就是非常大的挑战。”包云岗说,“桌面端也是一样的,在Windows环境下的应用也有几百万个,该如何迁移,这就是RISC-V要挑战存量市场需要解决的问题。”
从市场应用来看,RISC-V在高性能领域的应用才刚刚开始,未来还有很多要做的工作。
针对当下这个节点该如何建设生态,RISC-V全球基金会CEO Calista Redmond突出强调了合作的重要性:“我们谈RISC-V最强调的字眼就是‘协作’。所谓的协作是包括与合作伙伴的合作、与客户的合作、不同开发组之间的合作。所以,RISC-V绝不是任何孤立完成的事情。”
回顾今年RISC-V中国峰会的主题,不是“生态建设”而是“生态共建”,也凸显了RISC-V这一开源指令集架构生态建设的关键:开放、合作。
在过去的50多年里,有多种指令集架构曾出现过,但大多数指令集架构都被湮没在了历史的长河中,其中只有两个指令集架构与众不同,在激烈的市场竞争中站稳了脚跟:一个是x86,一个是Arm。
如何使RISC-V能够像Arm一样脱颖而出,而不是再次赴“前浪”的失败经验,Calista Redmond表示,在这个新的时代,一个指令集架构是否能够变得成熟丰富,一方面取决于生态的建立,另一方面是商业模式的问题。而在此之上最为重要的,是开放性和合作。这个合作不仅包括合作伙伴之间的合作,还包括与客户的合作。这些对于增强指令集的生命力至关重要。
开源是RISC-V的出发点和源头,也是未来生态增长的落脚点。
武延军表示,面向全球RISC-V开源社区做贡献,虽然有时候没有直接的收益,但却能极大地提升该企业的国际品牌影响力。近几年,中国在国际开源社区中的声量正越来越响。三四年前,很多国际上的RISC-V 开源社区,包括TG(Task Group)、HC(Horizon Committee)等,中国的声音还比较少。但从这几年可以看到,包括阿里平头哥在内的中国企业,参与到了大量的SIG组里,甚至有的企业成员担任了TG、HC的主席。这会让更多的企业认识到中国在国际社区中的重要性。