龙芯:中国一定要建立自己的CPU生态 不能重复日本错误
2021年12月9日-11日,2021第六届全球人工智能大会(gair2021)于深圳正式召开。历经五年,见证数次潮水的转向,成为目前为止粤港澳大湾区人工智能领域规模最大、规格最高的学术、工业和投资领域跨界盛会。
在大会第二天举办的“集成电路高峰论坛:国产高端芯片之路”上,汇聚来自学术界、产业界和投资界的15位大咖,共同探讨了国产高端芯片的实力以及risc-v带给中国芯片的机会。
cpu是一个复杂系统,在我们国家追求自主性的过程中,牵涉到三个维度的自主性,包括基于自主ip核的芯片设计、基于自主指令系统的软件生态,以及基于自主材料设备的生产工艺。
一个芯片里集成大量的ip核,ip核是否自主设计是最基础的维度。指令集系统承载着软件生态,软件生态控制着产业体系,而产业体系是最大的卡脖子环节,基于国外指令集不可能发展自主的信息产业体系。由此,自主性显得十分重要。
龙芯彭飞指出,中国一定要下定决心构建独立于wintel(windows+intel)体系和aa体系(arm+android)之外的自主的信息技术体系和产业生态体系。
前两大生态体系——x86的生态体系和arm的生态体系——是美国主导的信息化生态体系,未来要有基于我国的指令系统、国产的操作系统形成的,和这两个生态体系平行的一套生态体系。
除了自主性,指令集的兼容性也很重要。龙芯中科基于二十年的cpu研制和生态建设积累推出的loongarch指令系统,充分考虑兼容生态的需求,融合x86、arm等国际主流指令系统的主要功能特性,并依托龙芯研发团队在二进制翻译方面十余年的技术积累创新,可实现跨指令平台应用兼容,从而达到融合生态的目的。
以下是彭飞在gair 2021的演讲内容,进行了不改变原意的编辑整理:
今天从cpu的角度介绍一下基于指令集的国内发展现状。cpu是一个复杂系统,在我们国家追求自主性的过程中,主要牵涉到三个维度的自主性:
1、自主ip核。
一个芯片会集成大量的ip核,cpu、gpu仅是其中一个ip核,ip核是否能自主设计是考虑自主性最基础的维度。
2、基于自主指令系统的软件生态。
指令集是芯片对外的接口,同时是承载上面软件生态的体系基础。
过去,全世界基本上是基于两大生态体系:一是基于windows+intel,x86架构的产业生态体系;二是aa体系,就是arm+android,arm架构的产业生态体系,分别在桌面服务器、移动设备领域构建出了两大体系。我们国家要打造第三套信息化体系。
2020年,龙芯中科正式推出了自主指令系统loongarch,不包括国外任何授权,是跟x86、arm平行的指令系统。
3、自主材料的设备工艺自主性。
现在外界常说的“卡脖子”问题,“卡”得最严重的就是这个维度。为什么会出现这种情况?
可能有两方面原因:一是我国没有承接国外先进的产业转移。集成电路起源于美国,当集成电路生产,从美国向外产业转移的时候,有的转移到日本、转移到韩国,有的转移到我们国家的*,但没有转移到*。
另一个是过去国家集成电路设计相对比较薄弱,不能通过设计带动工艺的发展。不过,这几年我国芯片设计能力有了大幅提升,通过芯片设计带动整个工艺快速发展,从行业发展来看,虽然还有差距,但相信再过五到十年,这个差距可以补齐。
在70年代,美国硅谷的各种芯片蓬勃发展,当时芯片设计还不是美国一家独大,日本、欧洲、韩国都有芯片设计能力。intel曾在70年代向日本公司授权,让其采用兼容intel的架构设计cpu,这些cpu既便宜又好用,后来还反销到美国。1986年,美国挥起了制裁的大棒。
回顾那段历史可以发现,美国制裁他国高端芯片的发展并不新鲜,历史在反复上演。为什么会出现这样的情况?
当时日本犯了一个最大错误,就是只重视cpu产品的研发,忽视生态主导权。如果一直做生态里某一款产品,会难以实现超越。因此,掌握生态主导权极其重要。
1982年,nec生产的个人pc用的是intel的芯片,1985年换成了自研芯片,1986年又换回去了。为什么?因为制裁失去了生态的主导权,这给我们很大的启示。
中国一定要下定决心构建自己的信息化生态体系,前两大生态体系,x86的生态体系和arm的生态体系是美国主导的信息化生态体系。希望未来基于我们自己的指令系统、国产操作系统形成和这两个生态体系平行的一套生态体系,它是产业的基础,在别人的基础上盖房子总是不牢靠的。
目前基于自主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的特点主要表现在两个维度:一是用户态,二是核心态。
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%的性能不损失。
目前,photoshop、微信、一些游戏都可以在国产平台上很好地运行,生态是有保障的,包括一些主流的linux应用框架都可以原生支持。国产操作系统厂商统信和麒麟也都推出了对应的国产操作系统版本。
关于loongarch平台的ai计算,龙芯中科构建了全域异购ai硬件支撑体系,龙芯cpu+gpgpu、龙芯cpu+asic、龙芯cpu+fgpa分别应用于通用ai计算和专用ai计算。软件方面,龙芯中科构建多层级ai软件生态体系,包括系统支撑、计算框架、算法模型层级,ai领域有完整的解决方案。
目前围绕龙芯中科的产业合作伙伴已经有上千家,通过一系列的措施,包括标准建设、开源软件建设、解决方案提供、安全体系、产品认证、人才培养、出版书籍等,从多个维度构建loongarch产业生态体系。
同时,loongarch正在构建技术产业联盟,在联盟里与产业合作伙伴实现知识产权的共享,一起打造一套生态。希望在2025年消除指令系统之间的壁垒。
- the end -
转载请注明出处:快科技