知乎文章中包含各个测试报告地址,详情参考:https://zhuanlan.zhihu.com/p/711617301
前言
本文主要通过比对龙芯3A6000、华为鲲鹏920B(TSV120 2.9Ghz)和Intel各代CPU之间的Spec2017性能评测数据,来综合性判断3A6000、鲲鹏920B实际性能水平。不少龙芯粉丝一直认为GCC12、GCC13优化不足,不能准确测量出3A6000的成绩,因此本文采用ArchLinux+GCC14版本测试各个CPU,当然旧世界因为版本限制只能使用Loongnix+GCC8.3。
本轮测试各跑5组参数:O2、O3、Ofast、Ofast+native+flto、Ofast+native+flto+jemalloc,全部开启256位向量指令,x86开启-mavx2,LoongArch开启-msimd=lasx;
需要注意的是3A6000在march=native或la664参数下(GCC14下这两者等价),会默认使能-msimd=lasx,但在Ofast/O3/O2下-msimd=lasx需要手动开启,否则分数会低0.3分左右,比如GCC14下只开Ofast不加-msimd=lasx intrate1是4.2左右,开Ofast+-msimd=lasx intrate1是4.5左右(图表中的数据是加了-msimd=lasx的,测试报告里面包含了开启256向量和未开启的)。
其次是3A6000测试时,因为有人反馈AOSC跑分会比ArchLinux更高,但是实际验证未发现类似的情况,参数相同的情况下两者分数基本是一致的,详细可以看测试报告。
贴吧中有吧友把3A6000 的2017 intrate1跑到4.86,ArchLinux+GCC14+gfortran静态链接,ArchLinux系统默认是没有gfortran的相关静态库,猜测应该是这位吧友改了编译参数,重新编译了GCC及相关依赖库。此吧友之前ArchLinux+GCC14没有gfortran静态链接的情况下跑分是4.7,和我的4.69极为接近,另外x86也未开启静态链接,如3A6000做调整,意味着x86也需要重测,工作量太大,所以本文测试以4.69作为3A6000 intrate1最终成绩。
参与测试的主要CPU包括:
1、3A6000+2*8 DDR4 3200 新世界ArchLinux+旧世界Loongnix(12700使用的16G单条内存因为兼容性问题无法在6000上开机,因此只能将就2*8G);
2、Intel 2600K + 2*8G DDR3 1600,测了两次:默频3.8Ghz+超频到4.7Ghz(这颗U实际上5.1G都可以开机,但是考虑到我需要跑5个参数的Spec2017和Spec2006,需要的测试时间较长,夏天温度高且我用的散热器是6热管风冷,防止测到一半板U故障,因此频率定在4.7Ghz);
3、Intel 4790K@4.4Ghz + 2*8G DDR3 1600(Z87高端主板);
4、Intel 6820HQ@3.6Ghz + 2*8G DDR4 2400,选这颗U是因为3A6000官方宣传对标3.6Ghz的10100,6820HQ应该是和宣传最接近的一颗U,用的是笔记本,为了保持单核睿频稳定性,增加背部风扇;
5、Intel 9850HK@4.8Ghz + 2*8G DDR4 2800,默认单核最高睿频是4.6Ghz,但是在Spec2017不知为何显示的是4800Mhz,为了避嫌,索性小超到4.8Ghz;
6、Intel 10100@4.3Ghz + 2*8G DDR4 2133(主板是H410低端主板+插的是DDR4 3000的XMP条子,测完才发现没开启XMP,所以部分分数会低于4790K+Z87高端主板)
7、Intel 11700@4.9Ghz + 2*16G DDR4 3200
8、Intel 12700@4.9Ghz + 2*16G DDR4 3200
9、华为鲲鹏920(TSV120)@2.9Ghz,基于华为云KC2实例,测了两组实例4C16G/32C64G(单核跑分差别不是很大),软件环境分别是Debian12.4+GCC12.2和AOSC+GCC14,分数差异很小(6分和6.04分的区别);
PS:当然这样比对对鲲鹏920B不是很公正,因为这里面除了鲲鹏920B(40-64核),其他全部为桌面CPU,桌面CPU核心数更少,频率可以拉的更高(高20%以上),比如:
(1)、龙芯3A5000为2.5GHz,而同架构的32核服务器CPU 3D5000只有2.0GHz;
(2)、12900K最高单核睿频5.2Ghz,而48-64核的服务器产品最高睿频只有3.8-3.9Ghz;
当然也有人会说鲲鹏920的时候,64核版本和8核版本都是2.6Ghz,这个主要还是策略问题,国内信创厂商无法给华为性能上的竞争压力,服务器的频率就已经打的赢桌面U,为什么还要提升4-8核SKU产品的频率。
一、Spec2017 intrate1&fprate11.1、Ofast+native/la664+flto
说明:鲲鹏920B做了两次测试,一次是基于Debian12.4+GCC12.2,2017 intrate1跑分为6.0分,fprate1是9.0分。第二次是基于AOSC(高版本内核)+GCC14,并增加了内存和CPU核心数,但是分数相差不明显,2017 intrate1是6.04。
1.2、Ofast+native/la664+flto+jemalloc
1.3、Ofast
1.4、O3
1.5、O2
O2开启的编译优化参数已经非常少,是日常常用的编译参数,在O2编译参数下,3A6000不管是新世界还是旧世界依然只有10100/4790K的65-80%性能。
二、Spec2017 intspeed
两个都是intrate8,编译参数jemalloc有差异
三、Spec2017 intrate 8
由于整个测试对象包含了一些6核和8核的CPU还有一些笔记本U,这些CPU参与intrate8评测上没有太大意义(和3A6000对比多核性能的情况下),因此多核暂时只做3款CPU的比较:3A6000、4790K、10100
从评测数据可以看出来,由于3A6000多核互联性能比较拉胯,所以虽然4790K和10100全核睿频频率会降低,但是3A6000多核成绩仍然不占优,只有4790K和10100的80%左右性能。
三、总结
1、通过O2、O3、Ofast、Ofast+native/la664+flto、Ofast+native/la664+flto+jemalloc多个参数比对,3A6000的成绩基本是稳定的,不管单核还是多核均只有10100/4790K的70-80%性能;
2、不同操作系统、不同GCC、不同Glibc、不同编译参数下可以发现性能偏差轻松超过10%,甚至是20-30%性能,因此在实际做性能评测比对时,必须强调通环境一致性和编译参数一致(当然这个一致不是说字面的100%一致,这个一致是说CPU A开启了256位向量,那CPU B也应该开启256位向量,CPU A开了jemalloc,那CPU B也应该开jemalloc等等)
3、近期龙芯一直宣传下一代3B6600可以打败12/13代中酷睿,从测试结果看,并不能,3B6600目前PPT是30%IPC提升,20%频率提升,总共提升55%左右的性能,但是实际上3A6000和12700性能偏差接近一倍(而12700上面还有12700K、12900、12900K、13700、13900K,更不说12700还有4个小核,13700有8个小核),只提升55%性能无法追赶上12/13代酷睿(相同核心下性能)。
4、龙芯服务器CPU在华为鲲鹏面前没有性能竞争力,预计今年Q4发布的3D6000、3E6000按照3D5000的规律会降频,猜测3D6000实际频率是2.0Ghz左右,3E6000频率是1.8Ghz左右,折算Spec2017 intrate1的成绩分别是3.8-3.9、3.4-3.5左右,是相似核心数量的鲲鹏920B的55-65%性能,性能差距巨大,而鲲鹏920B是华为去年年底的产物。同时华为最近激进的CPU研发策略,一年做2次CPU Core设计迭代,华为今年肯定也会发布新的服务器U,后续这种差距只会拉的更大。
前言
本文主要通过比对龙芯3A6000、华为鲲鹏920B(TSV120 2.9Ghz)和Intel各代CPU之间的Spec2017性能评测数据,来综合性判断3A6000、鲲鹏920B实际性能水平。不少龙芯粉丝一直认为GCC12、GCC13优化不足,不能准确测量出3A6000的成绩,因此本文采用ArchLinux+GCC14版本测试各个CPU,当然旧世界因为版本限制只能使用Loongnix+GCC8.3。
本轮测试各跑5组参数:O2、O3、Ofast、Ofast+native+flto、Ofast+native+flto+jemalloc,全部开启256位向量指令,x86开启-mavx2,LoongArch开启-msimd=lasx;
需要注意的是3A6000在march=native或la664参数下(GCC14下这两者等价),会默认使能-msimd=lasx,但在Ofast/O3/O2下-msimd=lasx需要手动开启,否则分数会低0.3分左右,比如GCC14下只开Ofast不加-msimd=lasx intrate1是4.2左右,开Ofast+-msimd=lasx intrate1是4.5左右(图表中的数据是加了-msimd=lasx的,测试报告里面包含了开启256向量和未开启的)。
其次是3A6000测试时,因为有人反馈AOSC跑分会比ArchLinux更高,但是实际验证未发现类似的情况,参数相同的情况下两者分数基本是一致的,详细可以看测试报告。
贴吧中有吧友把3A6000 的2017 intrate1跑到4.86,ArchLinux+GCC14+gfortran静态链接,ArchLinux系统默认是没有gfortran的相关静态库,猜测应该是这位吧友改了编译参数,重新编译了GCC及相关依赖库。此吧友之前ArchLinux+GCC14没有gfortran静态链接的情况下跑分是4.7,和我的4.69极为接近,另外x86也未开启静态链接,如3A6000做调整,意味着x86也需要重测,工作量太大,所以本文测试以4.69作为3A6000 intrate1最终成绩。
参与测试的主要CPU包括:
1、3A6000+2*8 DDR4 3200 新世界ArchLinux+旧世界Loongnix(12700使用的16G单条内存因为兼容性问题无法在6000上开机,因此只能将就2*8G);
2、Intel 2600K + 2*8G DDR3 1600,测了两次:默频3.8Ghz+超频到4.7Ghz(这颗U实际上5.1G都可以开机,但是考虑到我需要跑5个参数的Spec2017和Spec2006,需要的测试时间较长,夏天温度高且我用的散热器是6热管风冷,防止测到一半板U故障,因此频率定在4.7Ghz);
3、Intel 4790K@4.4Ghz + 2*8G DDR3 1600(Z87高端主板);
4、Intel 6820HQ@3.6Ghz + 2*8G DDR4 2400,选这颗U是因为3A6000官方宣传对标3.6Ghz的10100,6820HQ应该是和宣传最接近的一颗U,用的是笔记本,为了保持单核睿频稳定性,增加背部风扇;
5、Intel 9850HK@4.8Ghz + 2*8G DDR4 2800,默认单核最高睿频是4.6Ghz,但是在Spec2017不知为何显示的是4800Mhz,为了避嫌,索性小超到4.8Ghz;
6、Intel 10100@4.3Ghz + 2*8G DDR4 2133(主板是H410低端主板+插的是DDR4 3000的XMP条子,测完才发现没开启XMP,所以部分分数会低于4790K+Z87高端主板)
7、Intel 11700@4.9Ghz + 2*16G DDR4 3200
8、Intel 12700@4.9Ghz + 2*16G DDR4 3200
9、华为鲲鹏920(TSV120)@2.9Ghz,基于华为云KC2实例,测了两组实例4C16G/32C64G(单核跑分差别不是很大),软件环境分别是Debian12.4+GCC12.2和AOSC+GCC14,分数差异很小(6分和6.04分的区别);
PS:当然这样比对对鲲鹏920B不是很公正,因为这里面除了鲲鹏920B(40-64核),其他全部为桌面CPU,桌面CPU核心数更少,频率可以拉的更高(高20%以上),比如:
(1)、龙芯3A5000为2.5GHz,而同架构的32核服务器CPU 3D5000只有2.0GHz;
(2)、12900K最高单核睿频5.2Ghz,而48-64核的服务器产品最高睿频只有3.8-3.9Ghz;
当然也有人会说鲲鹏920的时候,64核版本和8核版本都是2.6Ghz,这个主要还是策略问题,国内信创厂商无法给华为性能上的竞争压力,服务器的频率就已经打的赢桌面U,为什么还要提升4-8核SKU产品的频率。
一、Spec2017 intrate1&fprate11.1、Ofast+native/la664+flto
说明:鲲鹏920B做了两次测试,一次是基于Debian12.4+GCC12.2,2017 intrate1跑分为6.0分,fprate1是9.0分。第二次是基于AOSC(高版本内核)+GCC14,并增加了内存和CPU核心数,但是分数相差不明显,2017 intrate1是6.04。
1.2、Ofast+native/la664+flto+jemalloc
1.3、Ofast
1.4、O3
1.5、O2
O2开启的编译优化参数已经非常少,是日常常用的编译参数,在O2编译参数下,3A6000不管是新世界还是旧世界依然只有10100/4790K的65-80%性能。
二、Spec2017 intspeed
两个都是intrate8,编译参数jemalloc有差异
三、Spec2017 intrate 8
由于整个测试对象包含了一些6核和8核的CPU还有一些笔记本U,这些CPU参与intrate8评测上没有太大意义(和3A6000对比多核性能的情况下),因此多核暂时只做3款CPU的比较:3A6000、4790K、10100
从评测数据可以看出来,由于3A6000多核互联性能比较拉胯,所以虽然4790K和10100全核睿频频率会降低,但是3A6000多核成绩仍然不占优,只有4790K和10100的80%左右性能。
三、总结
1、通过O2、O3、Ofast、Ofast+native/la664+flto、Ofast+native/la664+flto+jemalloc多个参数比对,3A6000的成绩基本是稳定的,不管单核还是多核均只有10100/4790K的70-80%性能;
2、不同操作系统、不同GCC、不同Glibc、不同编译参数下可以发现性能偏差轻松超过10%,甚至是20-30%性能,因此在实际做性能评测比对时,必须强调通环境一致性和编译参数一致(当然这个一致不是说字面的100%一致,这个一致是说CPU A开启了256位向量,那CPU B也应该开启256位向量,CPU A开了jemalloc,那CPU B也应该开jemalloc等等)
3、近期龙芯一直宣传下一代3B6600可以打败12/13代中酷睿,从测试结果看,并不能,3B6600目前PPT是30%IPC提升,20%频率提升,总共提升55%左右的性能,但是实际上3A6000和12700性能偏差接近一倍(而12700上面还有12700K、12900、12900K、13700、13900K,更不说12700还有4个小核,13700有8个小核),只提升55%性能无法追赶上12/13代酷睿(相同核心下性能)。
4、龙芯服务器CPU在华为鲲鹏面前没有性能竞争力,预计今年Q4发布的3D6000、3E6000按照3D5000的规律会降频,猜测3D6000实际频率是2.0Ghz左右,3E6000频率是1.8Ghz左右,折算Spec2017 intrate1的成绩分别是3.8-3.9、3.4-3.5左右,是相似核心数量的鲲鹏920B的55-65%性能,性能差距巨大,而鲲鹏920B是华为去年年底的产物。同时华为最近激进的CPU研发策略,一年做2次CPU Core设计迭代,华为今年肯定也会发布新的服务器U,后续这种差距只会拉的更大。