正文
部分信创CPU算力与IntelCPU的简单比较
摘要
最近一直想查看一下国产和非国产的CPU的性能比较
从最开始学习研究 sysbench
到周五晚上开始学习 stress-ng
今天查看github上面stress-ng的官网时
发现有一个ubuntu的网页不错,感觉可以用来进行一些简单计算
我主要是想计算不同CPU的单核以及多核证书以及浮点性能
命令很简单
工具是上一个文章里面编译的. 这里主要是总结一下
官网可以测试的methods
stress-ng --cpu-method which
cpu-method must be one of: all ackermann bitops callfunc cdouble cfloat clongdouble
correlate crc16 decimal32 decimal64 decimal128 dither djb2a double euler explog fft
fibonacci float fnv1a gamma gcd gray hamming hanoi hyperbolic idct int128 int64 int32
int16 int8 int128float int128double int128longdouble int128decimal32 int128decimal64
int128decimal128 int64float int64double int64longdouble int32float int32double
int32longdouble jenkin jmp ln2 longdouble loop matrixprod nsqrt omega parity phi pi
pjw prime psi queens rand rand48 rgb sdbm sieve sqrt trig union zeta
一个最简单的测试命令
# 单个CPU核心
for m in int8 int16 int32 int64 crc16 float longdouble ; do echo $m; \
./stress-ng-amd --cpu 1 --cpu-method $m -t 10s --metrics-brief; done
for m in int8 int16 int32 int64 crc16 float longdouble ; do echo $m; \
./stress-ng-arm --cpu 1 --cpu-method $m -t 10s --metrics-brief; done
# 全部CPU核心
for m in int8 int16 int32 int64 crc16 float longdouble ; do echo $m; \
./stress-ng-amd --cpu 0 --cpu-method $m -t 10s --metrics-brief; done
for m in int8 int16 int32 int64 crc16 float longdouble ; do echo $m; \
./stress-ng-arm --cpu 0 --cpu-method $m -t 10s --metrics-brief; done
算力结果
单核心部分
CPU型号 |
int8 |
int16 |
int32 |
int64 |
crc16 |
float |
longdouble |
飞腾2000+ |
752.7 |
775.7 |
849.7 |
907.2 |
612.30 |
695.29 |
88.36 |
Golden6150 |
1798.49 |
1898.25 |
1831.47 |
1929.40 |
963.99 |
1604.85 |
1499.03 |
鲲鹏920虚拟机 |
1298.50 |
1287.70 |
1338.50 |
1358.90 |
724.15 |
823.39 |
149.95 |
飞腾2500 |
726.60 |
749.00 |
808.69 |
874.80 |
582.65 |
617.69 |
84.59 |
鲲鹏920物理机 |
1300.30 |
1289.60 |
1340.60 |
1361.20 |
725.96 |
822.29 |
150.55 |
Silver 4216 |
1422.40 |
1499.40 |
1438.00 |
1529.70 |
755.52 |
1345.99 |
1090.24 |
E5-2682 v4 |
1375.30 |
1427.80 |
1379.50 |
1481.10 |
806.92 |
1339.69 |
1297.20 |
海光7285 |
1076.39 |
1070.40 |
1076.70 |
1145.90 |
708.19 |
992.90 |
660.43 |
备注 :
6150 2.7Ghz 4216 2.1Ghz E5-2682V4 2.5Ghz
飞腾2000+ 2.1GHZ 飞腾2500 2.1Ggz 鲲鹏920 2.6Ghz
海光 7285 2.5GHZ 32核心 64线程
多核心部分
CPU型号 |
核心数 |
int8 |
int16 |
int32 |
int64 |
crc16 |
float |
longdouble |
飞腾2000+ |
64 |
48218.01 |
46498.99 |
48781.99 |
53400.20 |
36122.65 |
39968.20 |
5158.69 |
Golden6150 |
72/144HT |
150926.43 |
152270.88 |
140226.89 |
140380.04 |
112979.67 |
181171.93 |
124408.36 |
鲲鹏920虚拟机 |
8 |
10257.11 |
10115.81 |
10551.70 |
10733.00 |
5716.84 |
6494.56 |
1180.52 |
飞腾2500 |
128 |
89674.53 |
95949.70 |
103650.26 |
108989.33 |
72193.69 |
79242.50 |
10869.65 |
鲲鹏920物理机 |
128 |
163231.06 |
160767.45 |
168221.46 |
174053.41 |
92233.46 |
104964.82 |
19211.26 |
Silver 4216 |
32/64HT |
57168.08 |
59957.15 |
53886.69 |
53707.51 |
40581.40 |
79803.02 |
48684.99 |
E5-2682 v4 |
8 |
6756.42 |
7330.22 |
6887.32 |
7248.12 |
5506.79 |
9203.08 |
6345.19 |
海光7285 |
64/128HT |
97374.01 |
103356.23 |
101222.20 |
105232.52 |
79292.95 |
114943.13 |
65162.61 |
算力结果总结
1. 六年前上市的Golden 6150 是我对比的各种CPU里面无可置疑的王者.
不论单核还是多路多核.都是接近王者的存在(除了128核心的鲲鹏920整形较高).
怀疑因为有AVX512 longdouble等指令是十倍于信创CPU的存在.
2. 飞腾2500 单核性能竟然比飞腾2000有所衰退. 怀疑是增加多路互连导致.
因为多了一倍的核心数. 飞腾2500的多核心性能基本上是飞腾2000+的两倍.
3. 飞腾2022年的CPU只有intel 2017年非最高端CPU单核性能的42%,这一点让人大跌眼镜.
尤其是longdouble等指令的性能仅有二十分之一多一点的样子. (Intel的主频较高2.7Ghz)
4. 鲲鹏华为云的虚拟化优化的非常了得,单核新能仅有不到1%的损耗,相当厉害.
5. 鲲鹏是最接近Intel的存在, 因为主频也比较高一些. 部分计算方法128核心要超过144线程的四路服务器
但是longdouble等指令依旧输的比较惨. crc16等算法也是落后的.
6. 国产化多核的算力可以跟五六年前的IntelCPU掰一掰手腕. 但是单核算力还是不足.
7. Intel的超线程算进来可能也就带来20%的算力提升. 不开超线程是 1 开超线程也就1.2的样子.
8. 海光CPU的整数算力不如华为鲲鹏,但是海光的浮点和CRC比鲲鹏要好一点
9. 海光的线程数虽然赶上了鲲鹏, 但是因为超线程最多相当于0.2个core的加成, 倒是多核心能力不如鲲鹏.
核心观点: 跑分强性能不一定好, 还需要生产验证; 跑分差性能肯定好不到哪里去.
单核心算力图形化展示
多核心算力图形化展示
单核心算力部分原始数据
飞腾2000+
int8
stress-ng: info: [1220937] setting to a 10 second run per stressor
stress-ng: info: [1220937] dispatching hogs: 1 cpu
stress-ng: info: [1220937] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1220937] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1220937] cpu 7527 10.00 9.98 0.00 752.70 754.19
stress-ng: info: [1220937] successful run completed in 10.00s
int16
stress-ng: info: [1222145] setting to a 10 second run per stressor
stress-ng: info: [1222145] dispatching hogs: 1 cpu
stress-ng: info: [1222145] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1222145] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1222145] cpu 7757 10.00 9.99 0.00 775.70 776.60
stress-ng: info: [1222145] successful run completed in 10.00s
int32
stress-ng: info: [1223495] setting to a 10 second run per stressor
stress-ng: info: [1223495] dispatching hogs: 1 cpu
stress-ng: info: [1223495] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1223495] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1223495] cpu 8497 10.00 9.98 0.01 849.70 850.86
stress-ng: info: [1223495] successful run completed in 10.00s
int64
stress-ng: info: [1224844] setting to a 10 second run per stressor
stress-ng: info: [1224844] dispatching hogs: 1 cpu
stress-ng: info: [1224844] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1224844] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1224844] cpu 9072 10.00 9.99 0.00 907.20 908.20
stress-ng: info: [1224844] successful run completed in 10.00s
crc16
stress-ng: info: [1226046] setting to a 10 second run per stressor
stress-ng: info: [1226046] dispatching hogs: 1 cpu
stress-ng: info: [1226046] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1226046] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1226046] cpu 6129 10.01 10.00 0.00 612.30 613.07
stress-ng: info: [1226046] successful run completed in 10.01s
float
stress-ng: info: [1227324] setting to a 10 second run per stressor
stress-ng: info: [1227324] dispatching hogs: 1 cpu
stress-ng: info: [1227324] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1227324] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1227324] cpu 6953 10.00 9.98 0.00 695.29 696.68
stress-ng: info: [1227324] successful run completed in 10.00s
longdouble
stress-ng: info: [1228565] setting to a 10 second run per stressor
stress-ng: info: [1228565] dispatching hogs: 1 cpu
stress-ng: info: [1228565] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [1228565] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [1228565] cpu 884 10.00 9.99 0.00 88.36 88.48
stress-ng: info: [1228565] successful run completed in 10.01s
Golden 6150
int8
stress-ng: info: [137350] setting to a 10 second run per stressor
stress-ng: info: [137350] dispatching hogs: 1 cpu
stress-ng: info: [137350] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [137350] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [137350] cpu 17984 10.00 10.00 0.00 1798.49 1798.35
stress-ng: info: [137350] successful run completed in 10.00s
int16
stress-ng: info: [137578] setting to a 10 second run per stressor
stress-ng: info: [137578] dispatching hogs: 1 cpu
stress-ng: info: [137578] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [137578] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [137578] cpu 18982 10.00 10.00 0.00 1898.25 1898.15
stress-ng: info: [137578] successful run completed in 10.00s
int32
stress-ng: info: [137947] setting to a 10 second run per stressor
stress-ng: info: [137947] dispatching hogs: 1 cpu
stress-ng: info: [137947] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [137947] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [137947] cpu 18314 10.00 10.00 0.00 1831.47 1831.33
stress-ng: info: [137947] successful run completed in 10.00s
int64
stress-ng: info: [138152] setting to a 10 second run per stressor
stress-ng: info: [138152] dispatching hogs: 1 cpu
stress-ng: info: [138152] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [138152] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [138152] cpu 19293 10.00 10.00 0.00 1929.40 1929.22
stress-ng: info: [138152] successful run completed in 10.00s
crc16
stress-ng: info: [138381] setting to a 10 second run per stressor
stress-ng: info: [138381] dispatching hogs: 1 cpu
stress-ng: info: [138381] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [138381] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [138381] cpu 9640 10.00 10.00 0.00 963.99 963.92
stress-ng: info: [138381] successful run completed in 10.00s
float
stress-ng: info: [138736] setting to a 10 second run per stressor
stress-ng: info: [138736] dispatching hogs: 1 cpu
stress-ng: info: [138736] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [138736] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [138736] cpu 16048 10.00 10.00 0.00 1604.85 1604.92
stress-ng: info: [138736] successful run completed in 10.00s
longdouble
stress-ng: info: [138979] setting to a 10 second run per stressor
stress-ng: info: [138979] dispatching hogs: 1 cpu
stress-ng: info: [138979] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [138979] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [138979] cpu 14990 10.00 10.00 0.00 1499.03 1499.07
stress-ng: info: [138979] successful run completed in 10.00s
鲲鹏虚拟机
int8
stress-ng: info: [2757623] setting to a 10 second run per stressor
stress-ng: info: [2757623] dispatching hogs: 1 cpu
stress-ng: info: [2757623] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2757623] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2757623] cpu 12985 10.00 10.00 0.00 1298.50 1299.01
stress-ng: info: [2757623] successful run completed in 10.00s
int16
stress-ng: info: [2758451] setting to a 10 second run per stressor
stress-ng: info: [2758451] dispatching hogs: 1 cpu
stress-ng: info: [2758451] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2758451] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2758451] cpu 12877 10.00 10.00 0.00 1287.70 1288.21
stress-ng: info: [2758451] successful run completed in 10.00s
int32
stress-ng: info: [2759232] setting to a 10 second run per stressor
stress-ng: info: [2759232] dispatching hogs: 1 cpu
stress-ng: info: [2759232] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2759232] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2759232] cpu 13385 10.00 9.99 0.00 1338.50 1339.17
stress-ng: info: [2759232] successful run completed in 10.00s
int64
stress-ng: info: [2760180] setting to a 10 second run per stressor
stress-ng: info: [2760180] dispatching hogs: 1 cpu
stress-ng: info: [2760180] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2760180] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2760180] cpu 13589 10.00 10.00 0.00 1358.90 1359.46
stress-ng: info: [2760180] successful run completed in 10.00s
crc16
stress-ng: info: [2761007] setting to a 10 second run per stressor
stress-ng: info: [2761007] dispatching hogs: 1 cpu
stress-ng: info: [2761007] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2761007] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2761007] cpu 7246 10.01 10.00 0.00 724.15 724.43
stress-ng: info: [2761007] successful run completed in 10.01s
float
stress-ng: info: [2761836] setting to a 10 second run per stressor
stress-ng: info: [2761836] dispatching hogs: 1 cpu
stress-ng: info: [2761836] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2761836] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2761836] cpu 8234 10.00 10.00 0.00 823.39 823.72
stress-ng: info: [2761836] successful run completed in 10.00s
longdouble
stress-ng: info: [2762788] setting to a 10 second run per stressor
stress-ng: info: [2762788] dispatching hogs: 1 cpu
stress-ng: info: [2762788] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [2762788] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [2762788] cpu 1500 10.00 10.00 0.00 149.95 150.01
stress-ng: info: [2762788] successful run completed in 10.00s
飞腾2500+物理机
int8
stress-ng: info: [902196] setting to a 10 second run per stressor
stress-ng: info: [902196] dispatching hogs: 1 cpu
stress-ng: info: [902196] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [902196] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [902196] cpu 7266 10.00 10.00 0.00 726.60 726.59
stress-ng: info: [902196] successful run completed in 10.00s
int16
stress-ng: info: [902856] setting to a 10 second run per stressor
stress-ng: info: [902856] dispatching hogs: 1 cpu
stress-ng: info: [902856] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [902856] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [902856] cpu 7490 10.00 10.00 0.00 749.00 748.99
stress-ng: info: [902856] successful run completed in 10.00s
int32
stress-ng: info: [903629] setting to a 10 second run per stressor
stress-ng: info: [903629] dispatching hogs: 1 cpu
stress-ng: info: [903629] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [903629] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [903629] cpu 8087 10.00 10.00 0.00 808.69 808.69
stress-ng: info: [903629] successful run completed in 10.00s
int64
stress-ng: info: [904380] setting to a 10 second run per stressor
stress-ng: info: [904380] dispatching hogs: 1 cpu
stress-ng: info: [904380] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [904380] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [904380] cpu 8748 10.00 10.00 0.00 874.80 874.80
stress-ng: info: [904380] successful run completed in 10.00s
crc16
stress-ng: info: [905070] setting to a 10 second run per stressor
stress-ng: info: [905070] dispatching hogs: 1 cpu
stress-ng: info: [905070] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [905070] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [905070] cpu 5832 10.01 10.01 0.00 582.65 582.65
stress-ng: info: [905070] successful run completed in 10.01s
float
stress-ng: info: [905951] setting to a 10 second run per stressor
stress-ng: info: [905951] dispatching hogs: 1 cpu
stress-ng: info: [905951] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [905951] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [905951] cpu 6177 10.00 10.00 0.00 617.69 617.68
stress-ng: info: [905951] successful run completed in 10.00s
longdouble
stress-ng: info: [906639] setting to a 10 second run per stressor
stress-ng: info: [906639] dispatching hogs: 1 cpu
stress-ng: info: [906639] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [906639] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [906639] cpu 846 10.00 10.00 0.00 84.59 84.58
stress-ng: info: [906639] successful run completed in 10.00s
鲲鹏物理服务器
int8
stress-ng: info: [495243] setting to a 10 second run per stressor
stress-ng: info: [495243] dispatching hogs: 1 cpu
stress-ng: info: [495243] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495243] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495243] cpu 13003 10.00 10.00 0.00 1300.30 1300.34
stress-ng: info: [495243] successful run completed in 10.00s
int16
stress-ng: info: [495247] setting to a 10 second run per stressor
stress-ng: info: [495247] dispatching hogs: 1 cpu
stress-ng: info: [495247] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495247] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495247] cpu 12896 10.00 10.00 0.00 1289.60 1289.64
stress-ng: info: [495247] successful run completed in 10.00s
int32
stress-ng: info: [495251] setting to a 10 second run per stressor
stress-ng: info: [495251] dispatching hogs: 1 cpu
stress-ng: info: [495251] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495251] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495251] cpu 13406 10.00 10.00 0.00 1340.60 1340.65
stress-ng: info: [495251] successful run completed in 10.00s
int64
stress-ng: info: [495259] setting to a 10 second run per stressor
stress-ng: info: [495259] dispatching hogs: 1 cpu
stress-ng: info: [495259] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495259] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495259] cpu 13612 10.00 10.00 0.00 1361.20 1361.24
stress-ng: info: [495259] successful run completed in 10.00s
crc16
stress-ng: info: [495263] setting to a 10 second run per stressor
stress-ng: info: [495263] dispatching hogs: 1 cpu
stress-ng: info: [495263] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495263] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495263] cpu 7264 10.01 10.01 0.00 725.96 725.98
stress-ng: info: [495263] successful run completed in 10.01s
float
stress-ng: info: [495265] setting to a 10 second run per stressor
stress-ng: info: [495265] dispatching hogs: 1 cpu
stress-ng: info: [495265] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495265] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495265] cpu 8223 10.00 10.00 0.00 822.29 822.32
stress-ng: info: [495265] successful run completed in 10.00s
longdouble
stress-ng: info: [495270] setting to a 10 second run per stressor
stress-ng: info: [495270] dispatching hogs: 1 cpu
stress-ng: info: [495270] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [495270] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [495270] cpu 1506 10.00 10.00 0.00 150.55 150.56
stress-ng: info: [495270] successful run completed in 10.00s