nStrzp
发表于 2020-9-3 19:57:34
对于此事不予评价,我就拿数字说话。评测所用的电脑是8650U,与官宣的CPU大致相同。
首先想到计算圆周率,第一个想到的就是SuperPI,于是我上官网下了个SuperPi跑跑看
SuperPI测试结果
有点慢啊。不过考虑到SuperPI已经是上个世纪的软件了,慢也正常。在群友的帮助下找到了官方使用的项目
PI (=3.14...) Calculation Program based on FFT and AGM代码跟小米展示的部分完全一致。但是不巧的是,这个项目貌似包含多种计算方法,根据视频可以得出小米使用的是pi_ca.exe,但是官方并没有提供这货的预编译版本,于是我们自己动手编译。
视频中展示的命令行
在观察他的编译文件的时候,我注意到官方其实提供了两种版本,一种是单线程,一种是多线程。多线程的程序后面有_thread的后缀,也就是说小米用的是单线程版。
Makefile
随后我就按照官方的编译指令,使用VS编译了一份Win32版
单线程版运行结果
多线程版运行结果
不过多线程也没好到哪去,CPU占用很低(毕竟是2001年的代码了)
多线程版运行截图
考虑到古董代码的优化,我又去下了个看起来现代化一点的程序PiFast,同样计算小数点后1000w位
the fastest program to compute piemmmm 21秒 vs 101秒
结论:没有结论,你们看着锤吧(
Update:
经评论区 @大书 大佬提醒,加上编译优化参数 /O2 会快很多,于是我加上编译优化再测了一次:
单线程
多线程
单线程 101s → 40s
多线程 70s → 32s
所以你们小米跑分的时候不仅没用多线程,还没加代码优化的参数?