芯片器件中最著名的产物是CPU,国内CPU行业经历步履维艰的发展,关注度越来越高,在政务、通讯、计算等领域经常可以看到国产CPU的身影。但通用CPU领域还是国外CPU占据主导。桌面端有英特尔和AMD,移动端有ARM和高通等企业,国产CPU想要突出重围并不容易。
这些年国内CPU企业在不断发展的同时也在寻找破局之法,国内CPU厂商最常见的发展模式是购买指令集架构授权,ARM、MIPS甚至X86均有国内CPU企业获得了授权。购买指令集架构授权无疑是一种高效的手段,相当于在别人准备好地基的土地上建房子,产品不能称为完全国产自主。
不过授权终究是授权,没有相应产权的保护,依旧可能会受到制约。
LoongArch介绍
在2021年4月,龙芯中科率先在国产自主化跨出一步,宣布推出完全自主指令集架构:LoongArch,顶层架构到指令功能和ABI标准完全自主。这表明龙芯中科未来的CPU不再使用MIPS指令集架构,从今年推出的3A5000开始都将使用LoongArch架构,这无疑是芯片国产化的重要里程。
我们参照官方的资料,做了一下龙芯3A5000的微架构图,可以粗略看到3A5000大体分为4个区块,每个区块包含一个核心和一个缓存。
根据官方的资料,LoongArch依旧属于RISC阵营,拥有RISC的特点,比如32位定长指令,32个通用寄存器,32个浮点/向量寄存器。但LoongArch也进行了改进,取消了RISC的指令延迟槽,直接跳转指令的目标地址相对PC计算,增加相对转移偏移量。
LoongArch 拥有近2000条指令,并充分考虑兼容需求,相同的源代码编译成LoongArch比编译成龙芯此前支持的MIPS时动态执行指令数减少10%-20%,也就是运行效率更高,性能也会提升。
LoongArch还深入研究了MIPS、X86、ARM的特性,能对这些主流架构进行二进制翻译,对MIPS可以实现100%的翻译,能实现跨平台兼容,龙芯目标是在2025年的时候消除指令集之间的壁垒。
2021年7月,龙芯中科发布了两款基于LoongArch指令集架构的处理器:3A5000和3C5000L。3A5000处理器是面向桌面端的产品,3C5000L则是服务器处理器。 3A5000主频为2.3Ghz-2.5GHz,拥有4颗核心,每个处理器核心采用 64 位 LA464 自主微结构,支持DDR4-3200MHz内存,支持Hyper Transport 3.0控制器。3C5000L则由4个3A5000封装,拥有16个核心。
3A5000处理器内置了安全模块,可以对Meltdown(熔断)和Spectre(幽灵)两个经典CPU漏洞有效免疫,与上一代3A4000一样支持内置加解密算法和安全可信模块,也是目前唯一通过国内商密二级型号鉴定测试的CPU内置模块。
龙芯3A5000整机介绍
龙芯3A5000通用处理器主要应用在消费级桌面市场,未来会推出包括台式机、笔记本、一体机等产品,这次我们拿到了搭载3A5000处理器的台式整机产品,龙芯3A5000整机在外观上采用经典的商用办公主机风格,以黑色为主格调,前面板提供一个常规开关按钮,两个USB 2.0接口,两个音频输入/输出接口。
龙芯3A5000整机
主板I/O处,提供一个VGA视频口,一个串行COM接口,4个USB 2.0接口,2个USB 3.2 Gen1 5Gbps接口,一个有线网口。
主板I/O
其他配件上,这台主机使用了256GB的SATA固态,双8GB DDR4 3200MHz内存。显卡为AMD Radeon HD 8750M,显卡I/O提供一个VGA接口,一个HDMI接口。
紫光国芯(UnilC)2*8GB DDR4 3200MHz内存
AMD Radeon HD 8750M
卸下散热器,可以看到这次的主角:龙芯3A5000,龙芯3A5000的芯片代号为“KMYC70”,这样命名是纪念抗美援朝70年,而服务器3C5000L芯片代号则为“CPC100”以庆祝建党100周年。
这台主机中,龙芯3A5000直接焊接封装在主板上,不支持DIY更换。
编译器方面,龙芯3A5000配套的三大编译器GCC、LLVM、GoLang和三大虚拟机Java、JavaScript、.NET均已完成开发,龙芯自家基础版操作系统Loongnix和面向工控领域的LoongOS已经发布,不过我们手里这台龙芯3A5000整机使用的为统信UOS系统,因为优化等问题,会与Loongnix及其他系统的龙芯3A5000主机性能有差异。
主机配置
统信UOS系统由多家国内操作系统核心企业自愿发起并研发完善的安全、易用、稳定的操作系统产品,也是未来芯片国产化的生态关键一步。其官网目前已经开放下载,有兴趣的用户可以自行去官网下载尝试。那么除了统信UOS操作系统之外,实际上国内自主开发的操作系统麒麟Kylin龙芯版也是不错的选择。
实战测试:
此次参与测试的处理器除了龙芯3A5000之外,还增加了intel i5 9500 六核 14nm处理器、国产ARM V8 四核 7nm处理器和国产ARM V8 八核 14nm处理器作为对比参考,整机主要的硬件参数保持一致。
其中, intel i5 9500 六核 14nm架构处理器主频3.0-4.4Ghz,热设计功耗65W。国产ARM V8 四核 7nm处理器主频可达2.6GHz,单芯片可支持64核。另一款国产ARM V8 八核 14nm处理器,兼容64位ARMv8指令集,主频2.3GHz。
需要提前说明的是,参与测试的四款处理器核心数量并非一致,因此在多核测试项目中我们取处理器的最多核数成绩。
基准测试
UnixBench性能测试:
下面我们正式开始测试,首先依然选择大众熟悉的UnixBench测试工具。这款软件是一个类 Unix(Unix,BSD,Linux)系统下的性能测试工具,被广泛用于测试 Linux 系统主机的性能。可以测试系统调用、读写、进程、图形化测试等成绩,也是一个全方面考验整机的软件。
UnixBench单核、多核性能测试
从测试结果可以看到,龙芯3A5000和国产ARM V8 四核 7nm这款处理器的性能表现都很出色,龙芯3A5000单核性能达到了1685分,相比上一代龙芯3A4000提升非常明显,单核性能已逼近了intel i5 9500 六核 14nm这款处理器的水平。这一点也正符合龙芯先通过设计优化提高单核性能,再利用先进工艺增加核数的升级策略。
多核性能对比中,龙芯3A5000达到4314分与国产ARM V8 四核 7nm的4387分基本持平,但如果与intel i5 9500 六核 14nm对比还是有不小差距。不过,4核龙芯3A5000反而比国产ARM V8 八核 14nm这款处理器的性能高出了600多分。
SPEC 2006测试:
接下来我们进行SPEC 2006对比测试,SPEC 2006是一个大型的CPU性能测试项目,重点测试系统的处理器,内存子系统和编译器。能够测试CPU最基础的定点性能和浮点性能。同样需要提前说明的是,测试处理器由于核心数量并不对等,因此我们在多核测试环节选择最多核数的成绩。
SPEC CPU2006 BASE性能测试
本次我们将SPEC 2006测试分为单核与多核测试。龙芯3A5000单核定点为25.1分,单核浮点为26分。相比intel i5 9500 六核 14nm这款处理器的确有不小的差距,但单核定点与国产ARM V8 四核 7nm这款处理器不相上下,单核浮点略优于国产ARM V8 四核 7nm这款处理器。龙芯3A5000对比国产ARM V8 八核 14nm处理器的单核定点则高出近10分,单核浮点则高出近一倍。
多线程测试中,intel i5 9500 六核 14nm处理器依然表现最佳,而龙芯3A5000的多核定点与多核浮点均高于国产ARM V8 四核 7nm处理器,由于国产ARM V8 八核 14nm处理器核心数量上具有一定的优势,因此定点和浮点的分数要高于龙芯3A5000和国产ARM V8 四核 7nm处理器。
Stream:
Stream是业界主流的内存带宽测试程序,测试行为相对简单可控。 该程序对CPU的计算能力要求很小,对CPU内存带宽压力很大。 随着处理器核心数量的增大,而内存带宽并没有随之成线性增长,因此内存带宽对提升多核心的处理能力就越发重要。
Stream内存测试
在Stream Copy测试子项性能中,龙芯3A5000的表现相当出色,已超过了intel i5 9500 六核 14nm处理器。其中Copy单线性能获得16864分,多线性能获得21873分。国产ARM V8 八核 14nm处理器和国产ARM V8 四核 7nm处理器分数相差不大,但Copy的整体表现比龙芯3A5000稍逊一筹。
应用测试
实际上,除了处理器的单核与多核的基准性能测试之外,用户软件应用体验则可以更直观反应处理器之间的性能差异,下面我们就来实测一下办公常用WPS、浏览器与视频播放器方面的应用体验。
WPS:
我们将搭载四款处理器的主机安装上同样版本的统信UOS操作系统,然后用WPS办公软件分别打开10MB(文本+图片)、50M(文本+图片)以及 50M(文本+图片+视频)单个大容量文件,重点测试打开文档速度来衡量处理器的性能,为了尽可能保证测试数据样本的规律性,每个文档均打开5次后取平均值。
WPS办公软件打开文档速度对比(时间越短越好)
通过实际测试可以看到,10MB(文本+图片)文档打开速度中,国产ARM V8 八核 14nm处理器用时最短为1.47秒,龙芯3A5000打开速度为1.54秒。50M(文本+图片)打开速度中,国产ARM V8 四核 7nm处理器用时最长为3.01秒,50M(文本+图片+视频)测试中,国产ARM V8 八核 14nm处理器则用时最长为4.24秒,intel i5 9500 六核 14nm处理器用时最短为2.23秒。综合来看,intel i5 9500 六核 14nm处理器的整体表现较好,而龙芯3A5000略好于国产ARM V8 四核 7nm处理器,国产ARM V8 八核 14nm处理器小容量文件打开文件速度较好,但是大文档打开速度上不够理想。
浏览器:
浏览器是我们日常观看网页信息和视频的重要应用,目前每个网页基本上都充斥着大量的图形,对于CPU运行也会打来不小的负荷压力。下面我们就来测试一下四款处理器在浏览器上的性能表现。我们同时打开浏览器并加载爱奇艺视频网站,对比一下打开时间。由于龙芯自家提供有Loongnix浏览器,因此龙芯3A5000选择自家龙芯浏览器V3.1,而其他均选择火狐浏览器进行测试。
浏览器打开爱奇艺网站速度(时间越短越好)单位:秒
由于爱奇艺网站中存在视频、图片、CSS、JavaScript等等,因此加载页面对处理器性能也提出一定的要求。通过测试可以看到intel i5 9500 六核 14nm处理器加载速度表现较好用时1.4秒,龙芯3A5000的1.78秒也很不错,最长用时的则是国产ARM V8 八核 14nm处理器用时2.35秒。
影音播放:
最后对比测试的是影音播放性能,我们选择统信UOS操作系统下的默认视频播放器,并打开同样大小的1080P视频mp4格式,分别测试四款处理器加载视频的时间。
影院播放器加载1080P MP4视频时间(时间越短越好)单位:秒
通过实测可以看到,国产ARM V8 四核 7nm处理器加载速度最快为1.43秒,龙芯3A5000为1.64秒紧随其后,最慢的则是国产ARM V8 八核 14nm处理器用时2.09秒。此外值得一提是,由于龙芯3A5000处理器性能提升显著,因此在播放4K高清视频的软解能力也得到进一步提升,在脱离独显的情况下依然可以流畅播放高清视频。
不破不立 不断超越
长久以来,龙芯中科的目标是让中国人用上完全自主的CPU处理器,二十年风华岁月,弹指一挥间,LoongArch的出现让龙芯离这个目标迈进了一大步,这也不仅仅是龙芯的突破,也是中国自主CPU行业的新里程碑。
基于自主指令系统LoongArch的龙芯3A5000性能表现非常让人满意,短期内的短板是生态建设,应用软件适配还需要加强。尽管作为过渡阶段,龙芯的二进制翻译系统LAT可以实现跨指令平台应用兼容,也能够运行部分X86/Windows应用软件,但要想实现满足各种应用需求的庞大软件生态,仍需要国内软件厂商的群策群力。
生态涉及的复杂程度有时候会比单一技术还要令人头痛,CPU生态需要硬件、系统和用户作为支持,硬件上龙芯已经有了LoongArch加持的龙芯3A5000,系统方面有统信UOS、麒麟Kylin等国产操作系统的适配。LoongArch目前最需要的是用户,用户不仅包括消费者,也包括开发者,没有开发者带来的软件生态支持,就不会有大量消费者买单,没有用户消费就没有资金继续研发,所以LoongArch大力推广生态是当下最重要的一步。
苹果M1被认为可以威胁到英特尔和Windows,也是因为用户基数庞大,加上全球上千万的iOS开发者,才能成为CPU行业的黑马。
有些用户可能比较难理解,为啥我们CPU做了那么多年,国内CPU生态还是建立不起来。这里笔者举个例子,前段时间有消息称英特尔要在欧洲建立一座晶圆厂,投入是多少呢?消息显示英特尔整个生命周期内总投资或将超过1000亿美元,即使包括一些国家的政策补贴,英特尔每年在芯片研发上也有百亿美元投入。国内CPU整个行业实际投入都远低于英特尔这样的企业,根本不能满足所有芯片企业的需求,大多只勉强维持研发。
而且,国外CPU和操作系统在软件生态、产业体系上磨合了几十年。正所谓差之毫厘,谬之千里,一个微小细节失误就会让一条亿万投入的产品线作废,没有资本必然玩不转,门槛高,难入行,久而久之活下来的越来越少。
在这样的环境下,龙芯能够推出自主化指令集架构LoongArch实属不易,准确的说像龙芯这样现在还坚持做国产自主芯片的企业都值得尊敬。
不经一番寒彻骨,怎得梅花扑鼻香,自主之路无比艰难,龙芯这份勇气令人赞叹。现在龙芯已经踏出最艰难的第一步,接下来就是生态体系的建立。目前龙芯中科已经建立LoongArch社区,同时将会组建LoongArch联盟,免费开放LoongArch,希望更多的开发者可以参与其中,让国产自主CPU走的更远,期待龙芯中科为我们带来全新自主的国产CPU生态领域。
|