2021年12月9日-11日,2021第六届全球人工智能大会(GAIR2021)于深圳正式召开。历经五年,见证数次潮水的转向,成为目前为止粤港澳大湾区人工智能领域规模最大、规格最高的学术、工业和投资领域跨界盛会。

在大会第二天举办的“集成电路高峰论坛:国产高端芯片之路”上,汇聚来自学术界、产业界和投资界的15位大咖,共同探讨了国产高端芯片的实力以及RISC-V带给中国芯片的机会。

一个芯片里集成大量的IP核,IP核是否自主设计是最基础的维度。指令集系统承载着软件生态,软件生态控制着产业体系,而产业体系是最大的卡脖子环节,基于国外指令集不可能发展自主的信息产业体系。由此,自主性显得十分重要。

龙芯:中国一定要建立自己的CPU生态 不能重复日本错误-风君雪科技博客

龙芯彭飞指出,中国一定要下定决心构建独立于Wintel(Windows+Intel)体系和AA体系(ARM+Android)之外的自主的信息技术体系和产业生态体系。

前两大生态体系——X86的生态体系和ARM的生态体系——是美国主导的信息化生态体系,未来要有基于我国的指令系统、国产的操作系统形成的,和这两个生态体系平行的一套生态体系。

除了自主性,指令集的兼容性也很重要。龙芯中科基于二十年的CPU研制和生态建设积累推出的LoongArch指令系统,充分考虑兼容生态的需求,融合X86、ARM等国际主流指令系统的主要功能特性,并依托龙芯研发团队在二进制翻译方面十余年的技术积累创新,可实现跨指令平台应用兼容,从而达到融合生态的目的。

今天从CPU的角度介绍一下基于指令集的国内发展现状。CPU是一个复杂系统,在我们国家追求自主性的过程中,主要牵涉到三个维度的自主性:

一个芯片会集成大量的IP核,CPU、GPU仅是其中一个IP核,IP核是否能自主设计是考虑自主性最基础的维度。

指令集是芯片对外的接口,同时是承载上面软件生态的体系基础。

过去,全世界基本上是基于两大生态体系:一是基于Windows+Intel,X86架构的产业生态体系;二是AA体系,就是ARM+Android,ARM架构的产业生态体系,分别在桌面服务器、移动设备领域构建出了两大体系。我们国家要打造第三套信息化体系。

2020年,龙芯中科正式推出了自主指令系统LoongArch,不包括国外任何授权,是跟X86、ARM平行的指令系统。

现在外界常说的“卡脖子”问题,“卡”得最严重的就是这个维度。为什么会出现这种情况?

可能有两方面原因:一是我国没有承接国外先进的产业转移。集成电路起源于美国,当集成电路生产,从美国向外产业转移的时候,有的转移到日本、转移到韩国,有的转移到我们国家的台湾,但没有转移到中国大陆。

另一个是过去国家集成电路设计相对比较薄弱,不能通过设计带动工艺的发展。不过,这几年我国芯片设计能力有了大幅提升,通过芯片设计带动整个工艺快速发展,从行业发展来看,虽然还有差距,但相信再过五到十年,这个差距可以补齐。

在70年代,美国硅谷的各种芯片蓬勃发展,当时芯片设计还不是美国一家独大,日本、欧洲、韩国都有芯片设计能力。Intel曾在70年代向日本公司授权,让其采用兼容Intel的架构设计CPU,这些CPU既便宜又好用,后来还反销到美国。1986年,美国挥起了制裁的大棒。

回顾那段历史可以发现,美国制裁他国高端芯片的发展并不新鲜,历史在反复上演。为什么会出现这样的情况?

1982年,NEC生产的个人PC用的是Intel的芯片,1985年换成了自研芯片,1986年又换回去了。为什么?因为制裁失去了生态的主导权,这给我们很大的启示。

目前基于自主CPU的发展情况是怎么样?

龙芯:中国一定要建立自己的CPU生态 不能重复日本错误-风君雪科技博客

左图是龙芯3A5000芯片结构图,这里每一个方块其实都是一个IP,这些IP都是完全自主设计、自主演进,左下角罗列了芯片里面的IP核。

右上角反映了近十年自主CPU的发展速度,第一代3A1000跑分是2-3分,经过近十年的快速迭代,现在能达到30分(目前国际主流CPU跑分在20-40分之间)。右下角图片是芯片产业里性能提升的曲线,可以看到,前几年呈现线性快速增长,越往后增长越缓慢,龙芯CPU也即将达到性能增长的顶端。

指令集是信息产业绕不过去的话题,前面提到,我国不可能基于国外的指令系统构建自己的产业生态体系,就像中国人可以用英语阅读和写作,但是用英语构建我们国家的文化体系、构建民族文化是不可能的。

另一方面,应该如何考虑指令集的自主和兼容性?过去十几年,业界一直在争论这个问题,兼容性和自主性孰优孰劣?兼容有兼容的好处,可以直接利用现有生态里的软件产品,有现成的生态,一开始发展速度可能会快一些,但最大的问题是受制于人。

那么,我们能否做到既自主又兼容的指令系统?从龙芯过去二十年的发展来看,这是可以做到的,重点是要打造“3+3+3”的核心能力。一是三大编译器,GCC、LLVM、GOLANG。二是三个虚拟机,Java、JavaScript、.NET。三是三个翻译器,实现对MIPS、X86、ARM的二进制翻译,直接运行其应用软件。

目前,龙芯中科推出了自主指令系统LoongArch,包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令,是充分考虑兼容的指令系统。

LoongArch是一个精简指令系统,32位长指令、32个通用寄存器、32个浮点寄存器。用户态是给编译器、程序设计者使用。核心态在内存管理、控制寄存器的数量、规格都进行了大量的创新性设计,是符合现代操作系统的设计。

我们对LoongArch的性能进行了测试,在相同IP下,一个用MIPS指令集,一个用LoongArch指令集,可以看到,动态指令数下降了15%到20%,总体性能提升了12%左右。

LoongArch指令系统能够支持二进制翻译,融合了X86、ARM、MIPS、RISC-V指令系统的主要功能特性。

自主指令系统的生态是如何构建的。龙芯中科推出了二进制翻译器,又称LAT翻译体系。最底层是LoongArch架构的芯片,再往上是操作系统,操作系统往上有几个维度:基于LoongArch的原生Linux应用,比如说本地化的办公、音视频的应用。

同时,龙芯中科推出了三个翻译器:MIPS应用往LoongArch上翻译,ARM应用往LoongArch上翻译,X86应用往LoongArch上翻译,未来希望能够做到:从MIPS翻译过来百分之百性能不损失,从ARM翻译过来90%性能不损失,从X86翻译过来做到80%的性能不损失。

关于LoongArch平台的AI计算,龙芯中科构建了全域异购AI硬件支撑体系,龙芯CPU+GPGPU、龙芯CPU+ASIC、龙芯CPU+FGPA分别应用于通用AI计算和专用AI计算。软件方面,龙芯中科构建多层级AI软件生态体系,包括系统支撑、计算框架、算法模型层级,AI领域有完整的解决方案。

目前围绕龙芯中科的产业合作伙伴已经有上千家,通过一系列的措施,包括标准建设、开源软件建设、解决方案提供、安全体系、产品认证、人才培养、出版书籍等,从多个维度构建LoongArch产业生态体系。

同时,LoongArch正在构建技术产业联盟,在联盟里与产业合作伙伴实现知识产权的共享,一起打造一套生态。希望在2025年消除指令系统之间的壁垒。