芯片器件中最著名的产物是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生态领域。
– the end –