超越官方的民间测评:基于 SPEC CPU 2006 的国产龙芯 3A4000 处理器性能评测

“跑分” 这件事,相信各位读者对此并不目生。“不平跑个分” 曾经成为了某些手机公布时的保存节目。对于一般用户来说,非常常用的跑分程序大约即是鲁大师和安兔兔了。安置一个程序,而后再点几个按钮,几分钟以后跑分后果就出来了,全部历程简单放松。

若要跑分的平台不是运转 Windows 体系的 X86 平台,也不是运转安卓体系的 ARM 平台,而是运转国产操纵体系的国产处分器平台,用甚么技巧来衡量这些平台上的处分器性能呢?这时,咱们能够应用一个重量级的跑分程序 SPEC CPU 2006。

SPEC CPU 2006 包含 12 项整数测试,17 项浮点测试,总计 29 个测试项目。测试以后会划分凭据每一项的测试后果,用几多平衡算出非常终的整数测试后果和浮点测试后果。凭据编译选项配置的差别,能够获得处分器的底子(base)性能和峰值(peak)性能。对于 SPEC CPU 2006 的详细内容,网上曾经有许多质料了,在此我不做赘述。在中文国外IT号这里,我偏重说明单核 peak 性能的测试。

一、三款国产处分器性能比拟

应用 SPEC CPU 2006,咱们能够对种种国产处分器的性能做一个评价。这里,咱们开始比拟三款国产处分器的 SPEC CPU 2006 性能。

高涨 FT2000-4 处分器没有官方的 SPEC CPU 2006 性能。网友 应用高涨的里面测试配置文件,获得了 FT2000-4 处分器的整数峰值性能为 23.2 分;遗憾的是,在这个测试中并无进行浮点性能的测试,该网友也没有提供配置文件的细节。这个后果曾经开端实现了高涨在 2016 年的计划,即到 2018 年 SPEC CPU 2006 性能到达 20~30 分。

兆芯则干脆在上公示了处分器的性能,当前 KX-6000 的性能为 3GHz 下单核整数性能 29.2 分,浮点性能则高达 38 分。因为兆芯处分器接纳 X86 指令集,在进行性能测试的时分兆芯能够应用 Intel 编译器来获取非常高性能,这也是兆芯的生态上风之一。

龙芯 3A4000,接纳 28nm 工艺,主频 2.0 GHz 下,单核 peak 整数性能 21.1 分,浮点性能 21.2 分;单核 base 整数 19.1 分,浮点 18.7 分。我在昨年试图复现这个后果,没有胜利,即便超频到 2.15GHz 的情况下,非常终的后果也没有跨越 20 分,深感遗憾。当今我想再试一下,以凝望听。

图 1 三款国产处分器的单核性能比拟

两影响处分器性能的成分

在性能评测中,影响性能的成分有许多,简单的讲能够概括为以下几个个片面:

三、龙芯 3A4000 处分器的 SPEC CPU 2006 性能调优

在对龙芯 3A4000 进行性能测试的时分,我测试了操纵体系内核、内存性能、主频、编译选项等对操纵体系性能的影响。

1. 编译器优化选项

开始,我考查了编译器的种种优化选项对性能的影响。此时,我的测试情况是龙芯 3A4000 处分器,主频 1.8GHz, 配单根 8GB 2400MT/s 内存条。操纵体系为龙梦 Fedora 28,内核版本为 5.4.60,编译器版本为 GCC 8.4。我简单测试了 O2、O3、Ofast 三个优化选项,获得的 SPEC CPU 2006 性能如图 2 所示。

图 2 接纳 O2、O3、Ofast 选项时的处分器性能比拟

这性格能看起来着实是不怎么样。从 O2 到 O3 再到 Ofast,程序的性能有些许的晋升,但间隔龙芯官方生产的 20 分还差的非常远。接下来,咱们能够经历进一步编译器参数来对处分器的性能进行优化。我接纳的要紧编译器参数和好处以下表所示。

编译器参数

-march=loongson3a

开启针对龙芯 3A 处分器的优化

-mabi=n32

应用 N32 的 ABI

-funroll-all-loops

轮回睁开

-mmsa

应用 MIPS SIMD 指令

-flto

开启链接时优化

-ftree-parallelize-loops

开启自动并行

-fprofile-generate,-fprofile-use

应用 profile guided optimization

对每个测试项目的编译参数,都进行了调整,非常终获得的 peak 性能分数进步到了整数 18.09 分,浮点 17.64 分,比较于仅应用 Ofast 参数的性能划分进步了 34% 和 24%。图 3~ 4 比拟了只应用 Ofast 参数的性能和 peak 性能的比拟。

图 4 peak 性能和仅接纳 Ofast 选项的性能比拟

从测试的后果看,仅仅寄托编译选项的调整,就能够大幅进步应用程序运转的速率。对于片面测试的性能,乃至稀有倍的性能晋升。好比,456.hmmer 测试项目的分数从 11.7 分进步到 27.4 分,性能是以前的 2.3 倍,这要紧是因为启用了 MIPS 的 SIMD 指令;436.cactusADM 测试项目的分数从 2.5 分进步到 7.3 分,性能是以前的 2.9 倍。

2. 操纵体系内核的选定

除了编译选项的调整,操纵体系内核也对应用程序的性能有着非常大的影响。接纳同样的编译选项,我划分应用 Fedora 28 的 5.4.60 内核以及龙芯提供的 4.19.161 内核进行了性能测试。应用 4.19.161 内核,进一步晋升了程序的性能,整数 / 浮点性能划分从 18.09 分 /17.64 分,进步到了 18.8 分 / 19.92 分,性能的晋升划分为 4% 和 13%。

如图 5 所示,429.mcf 性能从 20.56 分进步到了 24.9 分,性能进步了 21%。而性能晋升非常为明显的项目是 436.cactusADM,分数从 7.3 分进步到了 44.9 分,性能暴涨到原来的 6.15 倍,的确像开挂了同样。这也评释龙芯公司在操纵体系内核的优化上,也做了许多工作。

图 5 操纵体系内查对性能的影响

3. 内存性能

进一步,我比拟了内存性能对体系性能的影响。当体系增加一根内存条,组成双通道以后,整体的性能再次晋升,整数 / 浮点性能划分晋升到了 19.60 分和 20.99 分,相比以前的测试划分又进步了 4.3% 和 5.5%。此中,性能晋升较大的项目如图 6 所示。非常明显,这些项目也是访存密集型的。在对内存性能进行调优以后,1.8 GHz 主频的龙芯 3A4000 处分器的浮点性能曾经跨越了 20 分。

从测试的后果也可以看出,462.libquantum 测试对访存性能非常敏感,将内存从单通道晋级到双通道,性能晋升了 66%。

图 6 内存对性能的影响

4. 处分器主频

以上的测试都是在 1.8 GHz 主频下实现的。现实上,龙芯 3A4000 处分器睿一再率能够到 2.0 GHz。而应用龙芯内核开辟者 flygoat 提供的龙梦 A1901 主板内核超频补丁,还能够进一步晋升龙芯 3A4000 处分器的主频到 2.2 GHz。

进步主频的话,龙芯 3A4000 处分器的性能毕竟能够晋升到甚么程度?从下图 7 能够看出,在 2.0GHz 主频下,整数性能和浮点性能划分为 21.3 分和 22.9 分,这曾经跨越了龙芯官方提供的整数 21.1 分、浮点 21.2 分的 peak 性能。我所测试的 A1901 主板,3A4000 处分器能够稳定在 2.1GHz 主频下,在此主频下整数性能和浮点性能划分为 22.2 分和 23.8 分。

图 7 差别主频下龙芯 3A4000 处分器的性能

然而,这并非是龙芯 3A400 处分器的性能极限。我在测试中应用的是 GCC 8.4 编译器,此中对龙芯 3A4000 中指令的支持并不美满。好比,龙芯 3A4000 中实现了 256 位向量操纵指令 LASX,但我在跑分的时分只用到了 128 位的向量操纵指令 MSA。若编译器中的编译选项对龙芯处分器进行了深度的调优,全部体系的性能另有进一步晋升的空间。

经由上述的测试,我对体系的硬件、应用等方面进行了多种调优,经历优化编译器选项、操纵体系内核、内存性能,以及对处分器的超频,将 SPEC CPU 2006 的性能从非常初的整数 13.1 分、浮点 12.2 分,进步到了非常终的整数 22.2 分、浮点 23.8 分(2.1 GHz)。这些优化的履历,对于相似的体系同样适合。

四、针尖对麦芒:高涨 FT2000/4 vs 龙芯 3A4000 处分器

咱们打听了龙芯 3A4000 处分器的性能,辣么和友商的高涨 FT2000-4 处分器相比,龙芯 3A4000 的差距有多大呢?

龙芯 3A4000

高涨 2000-4

处分器核

GS464V

FTC663

指令集

LoongISA

ARM V8

处分器核数

处分器主频

2.0

2.6

28nm

14nm

30~50W

10~15W

内存掌握器

DDR4 非常高 2400MT/s

DDR4 非常高 3200MT/s

能够看出,接纳先进工艺的 FT2000-4 处分器在主频和功耗上大幅当先龙芯 3A4000 处分器。辣么处分器的着实性能有多大的差距呢?近来,贴吧网友 yygg100 对 FT2000 处分器的 SPEC CPU 2006 的 peak 性能进行了测试,获得了在 2.6GHz 主频下单核 peak 整数性能 23.2 分的后果。固然他的测试并不美满,惟有整数性能测试,没有浮点性能测试的数据,但这依旧是当前已知的 FT2000 处分器单核性能的非常高值。

咱们将这个数据与龙芯 3A4000 在 2.0GHz 下的性能进行了比拟,龙芯 3A4000 性能为 21.3 分。因为龙芯处分器工艺掉队,主频较低,主频惟有高涨处分器的 77%,而整数性能到达了高涨处分器的 92%。

图 8 龙芯 3A4000 和高涨 FT2000-4 处分器整数性能比拟。

从图中能够看出,在 12 项测试中,高涨处分器在 8 个项目上性能强于龙芯 3A4000,此中 libquantum 这一项的性能差距非常大,龙芯处分器性能惟有 FT2000 的 58%,因为高涨处分器不但主频较高,并且内存频率为 2666MT/s,相比龙芯 3A4000 的 2400MT/s 有明显的上风。

而在 429.mcf,445.gobmk,456.hmmer, 458.sjeng 这 4 个项目上,2.6 GHz 的高涨 2000 处分器性能弱于 2.0 GHz 的 3A4000 处分器。跟着龙芯 3A5000 处分器的上市,高涨 2000 处分器的单核性能当先上风将会渐渐消散。

五、对龙芯 3A5000 的瞻望

龙芯 3A5000 处分器曾经流片,非常快就要公布了。龙芯 3A5000 处分器将接纳台积电 12nm 工艺流片,处分器主频希望进步到 2.5 GHz 以上,和友商处分器的主频差距进一步收缩。据称,龙芯 3A5000 的 SPEC CPU 2006 性能将到达 25~30 分。

凭据我对龙芯 3A4000 处分器的性能测试,若把龙芯 3A5000 处分器视为 3A4000 的简单晋级版,仅仅进步主频,内存频率松懈存都固定,接纳图 7 中的数据,进行一个简单的数据拟合,我瞻望龙芯 3A4000 处分器在 2.5 GHz 主频时 peak 性能大约为整数 25.9 分、浮点 26.7 分。龙芯 3A5000 会将三级缓存大小更加,进步内存的频率 (希望到达 3200MT/s),还会进一步晋升处分器的性能,咱们能够假定有这些调整能够带来 5% 的性能晋升;龙芯 3A5000 处分器接纳了 Loongarch 指令集,摆脱了 MIPS 指令集的经历负担,凭据胡伟武钻研员的汇报,仅仅是指令集的更新,就能够让性能晋升 16.6% 和 9.4%,咱们能够守旧预计有 9% 的性能晋升。龙芯 3A5000 也希望应用真确 256 位向量指令,而非 MSA 中的 128 位向量,程序运转速率能够进一步进步,能够守旧预计这能带来 2% 的性能晋升。

凭据上头的计较,我觉得龙芯 3A5000 处分器的 SPEC CPU 2006 单核 peak 性能能够到达整数 30 分、浮点 30 分。届时,龙芯处分器将在单核性能上追平或赶超其余国产处分器。2021 年下半年,16 核龙芯 3C5000 以及 64 核龙芯 3E5000 的流片,也将进步龙芯处分器的多核性能,有助于龙芯扩大服务器环境趋势。

本次测试借用了网友 gueenet 的龙芯 3A4000 主机,对他的激动和信托我深表谢谢!在对内核的性能测试中获得了陈华才、flygoat 的指导。对 SPEC CPU 2006 性能的探索,受到了网友 yygg100 所发视频的开导,对他的视频共享一并表示谢谢。封面图由龙芯吧 Windows1089 提供。

对 SPEC CPU 感乐趣的同事,能够参考 中的文档,进行龙芯平台下 SPEC CPU 2006 的跑分。

您可能还会对下面的文章感兴趣: