2年前调查测试CPU性能,并且使用计算PI的方法时,发现的一个工具叫做y-cruncher(当然也有Super Pi等工具),最近又能用得上,在这里介绍一下。
y-cruncher有几点值得推荐:
1.它是一款非常快速的计算PI的工具,支持度线程并发计算,做性能工具可以压满多个CPU核。
2.其官方网站上,有很多别人的测试数据,比如有人就通过1台服务器计算了105天,计算到了PI在小数点后22,459,157,718,361位。
3.它除了测试计算PI的性能,其实也是一个功能测试工具,可以识别CPU、OS支持的指令集(如AVX、AVX2等),并使用这些指令集进行计算。
使用方法:
去官网下载可执行程序,然后运行: ./y-cruncher bench 100m -TD:4 这样的命令即可,该命令表示使用4个并发计算PI的小数点后100M位(1亿位)。
这个命令,可以压满4个核。
其输出的计算性能数据,如下所示:
1 2 |
Total Computation Time: 10.907 seconds ( 0.182 minutes ) Start-to-End Wall Time: 11.830 seconds ( 0.197 minutes ) |
可以根据计算时间来衡量系统的性能(就使用前面提到的运行命令),如:
1.不支持AVX的系统上,计算时间为40秒
2.支持AVX的系统上,计算时间为25.638秒
3.支持AVX2的系统上,计算时间为10.907秒
4.支持AVX512的系统上,计算时间为5秒 (目前,我使用的y-cruncher最新版本v0.7.2.9468还没有支持AVX512指令计算PI)
这样就容易看出不同系统的计算性能差异。
注:性能数据只是举一个例子,不是正式数据,请自行实际测试。
在一款基于Intel Broadwell CPU的系统上运行y-cruncher时,打印的一些指令集相关的东西如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
Detecting Environment... CPU Vendor: AMD = No Intel = Yes OS Features: * 64-bit = Yes * OS AVX = Yes * OS AVX512 = No Hardware Features: MMX = Yes * x64 = Yes * ABM = Yes RDRAND = Yes RDSEED = Yes BMI1 = Yes * BMI2 = Yes * ADX = Yes MPX = No PREFETCHW = Yes PREFETCHWT1 = No SIMD: 128-bit * SSE = Yes * SSE2 = Yes * SSE3 = Yes * SSSE3 = Yes SSE4a = No * SSE4.1 = Yes * SSE4.2 = Yes AES-NI = Yes SHA = No SIMD: 256-bit * AVX = Yes * XOP = No * FMA3 = Yes * FMA4 = No * AVX2 = Yes SIMD: 512-bit * AVX512-F = No AVX512-CD = No AVX512-PF = No AVX512-ER = No * AVX512-VL = No * AVX512-BW = No * AVX512-DQ = No * AVX512-IFMA = No * AVX512-VBMI = No |
我们就可以基于这个做系统支持哪些指令的功能测试。