芯片器件中最著名的产物是CPU,国内CPU行业经历步履维艰的发展,关注度越来越高,在政务、通讯、计算等领域经常可以看到国产CPU的身影。但通用CPU领域还是国外CPU占据主导。桌面端有英特尔和AMD,移动端有ARM和高通等企业,国产CPU想要突出重围并不容易。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客

这些年国内CPU企业在不断发展的同时也在寻找破局之法,国内CPU厂商最常见的发展模式是购买指令集架构授权,ARM、MIPS甚至X86均有国内CPU企业获得了授权。购买指令集架构授权无疑是一种高效的手段,相当于在别人准备好地基的土地上建房子,产品不能称为完全国产自主

不过授权终究是授权,没有相应产权的保护,依旧可能会受到制约。

在2021年4月,龙芯中科率先在国产自主化跨出一步,宣布推出完全自主指令集架构:LoongArch,顶层架构到指令功能和ABI标准完全自主。这表明龙芯中科未来的CPU不再使用MIPS指令集架构,从今年推出的3A5000开始都将使用LoongArch架构,这无疑是芯片国产化的重要里程。

我们参照官方的资料,做了一下龙芯3A5000的微架构图,可以粗略看到3A5000大体分为4个区块,每个区块包含一个核心和一个缓存。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客

根据官方的资料,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评测 国产自主指令集架构实战-风君雪科技博客

3A5000处理器内置了安全模块,可以对Meltdown(熔断)和Spectre(幽灵)两个经典CPU漏洞有效免疫,与上一代3A4000一样支持内置加解密算法和安全可信模块,也是目前唯一通过国内商密二级型号鉴定测试的CPU内置模块。

龙芯3A5000通用处理器主要应用在消费级桌面市场,未来会推出包括台式机、笔记本、一体机等产品,这次我们拿到了搭载3A5000处理器的台式整机产品,龙芯3A5000整机在外观上采用经典的商用办公主机风格,以黑色为主格调,前面板提供一个常规开关按钮,两个USB 2.0接口,两个音频输入/输出接口。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
龙芯3A5000整机

主板I/O处,提供一个VGA视频口,一个串行COM接口,4个USB 2.0接口,2个USB 3.2 Gen1 5Gbps接口,一个有线网口。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
主板I/O

其他配件上,这台主机使用了256GB的SATA固态,双8GB DDR4 3200MHz内存。显卡为AMD Radeon HD 8750M,显卡I/O提供一个VGA接口,一个HDMI接口。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
紫光国芯(UnilC)2*8GB DDR4 3200MHz内存

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
AMD Radeon HD 8750M

卸下散热器,可以看到这次的主角:龙芯3A5000,龙芯3A5000的芯片代号为“KMYC70”,这样命名是纪念抗美援朝70年,而服务器3C5000L芯片代号则为“CPC100”以庆祝建党100周年。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客

这台主机中,龙芯3A5000直接焊接封装在主板上,不支持DIY更换。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客

编译器方面,龙芯3A5000配套的三大编译器GCC、LLVM、GoLang和三大虚拟机Java、JavaScript、.NET均已完成开发,龙芯自家基础版操作系统Loongnix和面向工控领域的LoongOS已经发布,不过我们手里这台龙芯3A5000整机使用的为统信UOS系统,因为优化等问题,会与Loongnix及其他系统的龙芯3A5000主机性能有差异。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
主机配置

统信UOS系统由多家国内操作系统核心企业自愿发起并研发完善的安全、易用、稳定的操作系统产品,也是未来芯片国产化的生态关键一步。其官网目前已经开放下载,有兴趣的用户可以自行去官网下载尝试。那么除了统信UOS操作系统之外,实际上国内自主开发的操作系统麒麟Kylin龙芯版也是不错的选择。

此次参与测试的处理器除了龙芯3A5000之外,还增加了intel i5 9500 六核 14nm处理器、国产ARM V8 四核 7nm处理器和国产ARM V8 八核 14nm处理器作为对比参考,整机主要的硬件参数保持一致。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客

其中, intel i5 9500 六核 14nm架构处理器主频3.0-4.4Ghz,热设计功耗65W。国产ARM V8 四核 7nm处理器主频可达2.6GHz,单芯片可支持64核。另一款国产ARM V8 八核 14nm处理器,兼容64位ARMv8指令集,主频2.3GHz。

需要提前说明的是,参与测试的四款处理器核心数量并非一致,因此在多核测试项目中我们取处理器的最多核数成绩。

基准测试

下面我们正式开始测试,首先依然选择大众熟悉的UnixBench测试工具。这款软件是一个类 Unix(Unix,BSD,Linux)系统下的性能测试工具,被广泛用于测试 Linux 系统主机的性能。可以测试系统调用、读写、进程、图形化测试等成绩,也是一个全方面考验整机的软件。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
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是一个大型的CPU性能测试项目,重点测试系统的处理器,内存子系统和编译器。能够测试CPU最基础的定点性能和浮点性能。同样需要提前说明的是,测试处理器由于核心数量并不对等,因此我们在多核测试环节选择最多核数的成绩。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
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是业界主流的内存带宽测试程序,测试行为相对简单可控。 该程序对CPU的计算能力要求很小,对CPU内存带宽压力很大。 随着处理器核心数量的增大,而内存带宽并没有随之成线性增长,因此内存带宽对提升多核心的处理能力就越发重要。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
Stream内存测试

在Stream Copy测试子项性能中,龙芯3A5000的表现相当出色,已超过了intel i5 9500 六核 14nm处理器。其中Copy单线性能获得16864分,多线性能获得21873分。国产ARM V8 八核 14nm处理器和国产ARM V8 四核 7nm处理器分数相差不大,但Copy的整体表现比龙芯3A5000稍逊一筹。

应用测试

实际上,除了处理器的单核与多核的基准性能测试之外,用户软件应用体验则可以更直观反应处理器之间的性能差异,下面我们就来实测一下办公常用WPS、浏览器与视频播放器方面的应用体验。

我们将搭载四款处理器的主机安装上同样版本的统信UOS操作系统,然后用WPS办公软件分别打开10MB(文本+图片)、50M(文本+图片)以及 50M(文本+图片+视频)单个大容量文件,重点测试打开文档速度来衡量处理器的性能,为了尽可能保证测试数据样本的规律性,每个文档均打开5次后取平均值。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
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,而其他均选择火狐浏览器进行测试。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
浏览器打开爱奇艺网站速度(时间越短越好)单位:秒

由于爱奇艺网站中存在视频、图片、CSS、JavaScript等等,因此加载页面对处理器性能也提出一定的要求。通过测试可以看到intel i5 9500 六核 14nm处理器加载速度表现较好用时1.4秒,龙芯3A5000的1.78秒也很不错,最长用时的则是国产ARM V8 八核 14nm处理器用时2.35秒。

最后对比测试的是影音播放性能,我们选择统信UOS操作系统下的默认视频播放器,并打开同样大小的1080P视频mp4格式,分别测试四款处理器加载视频的时间。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客
影院播放器加载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应用软件,但要想实现满足各种应用需求的庞大软件生态,仍需要国内软件厂商的群策群力。

龙芯3A5000评测 国产自主指令集架构实战-风君雪科技博客

生态涉及的复杂程度有时候会比单一技术还要令人头痛,CPU生态需要硬件、系统和用户作为支持,硬件上龙芯已经有了LoongArch加持的龙芯3A5000,系统方面有统信UOS、麒麟Kylin等国产操作系统的适配。LoongArch目前最需要的是用户,用户不仅包括消费者,也包括开发者,没有开发者带来的软件生态支持,就不会有大量消费者买单,没有用户消费就没有资金继续研发,所以LoongArch大力推广生态是当下最重要的一步。

苹果M1被认为可以威胁到英特尔和Windows,也是因为用户基数庞大,加上全球上千万的iOS开发者,才能成为CPU行业的黑马。

有些用户可能比较难理解,为啥我们CPU做了那么多年,国内CPU生态还是建立不起来。这里笔者举个例子,前段时间有消息称英特尔要在欧洲建立一座晶圆厂,投入是多少呢?消息显示英特尔整个生命周期内总投资或将超过1000亿美元,即使包括一些国家的政策补贴,英特尔每年在芯片研发上也有百亿美元投入。国内CPU整个行业实际投入都远低于英特尔这样的企业,根本不能满足所有芯片企业的需求,大多只勉强维持研发。

而且,国外CPU和操作系统在软件生态、产业体系上磨合了几十年。正所谓差之毫厘,谬之千里,一个微小细节失误就会让一条亿万投入的产品线作废,没有资本必然玩不转,门槛高,难入行,久而久之活下来的越来越少。

在这样的环境下,龙芯能够推出自主化指令集架构LoongArch实属不易,准确的说像龙芯这样现在还坚持做国产自主芯片的企业都值得尊敬。

不经一番寒彻骨,怎得梅花扑鼻香,自主之路无比艰难,龙芯这份勇气令人赞叹。现在龙芯已经踏出最艰难的第一步,接下来就是生态体系的建立。目前龙芯中科已经建立LoongArch社区,同时将会组建LoongArch联盟,免费开放LoongArch,希望更多的开发者可以参与其中,让国产自主CPU走的更远,期待龙芯中科为我们带来全新自主的国产CPU生态领域。