村民F_
26-06-13 19:40 微博认证:数码博主

最近在研究SPEC CPU 2026,有一个老生常谈的技术理念问题:

SPEC CPU是一个跨平台的测试,但是与其他常见的跨平台测试不同,它只提供测试代码,需要用户自行根据代码编译出测试程序
因此,编译器、编译时的选项,都会对测试结果产生直接的影响

要进行跨平台比较,那就要尽量拉平测试条件,就需要找各平台都能用的编译器,使用相同的测试的flag,但这样一来,系统差异就会显现出来了

举个例子,同一台电脑,同样使用LLVM 22.1.3编译,jemalloc 5.3.1分配内存,设定flag为-O3 -flto -march=x86-64-v3,放在Windows和Linux下,链接到的系统依赖是不同的,性能表现是不一样的

这还是同一台电脑,甚至还指定用jemalloc 分配内存的前提下,就更不要说x86比arm这种更加斗蛐蛐的情况了,差异就更加大了

最终应该选择什么样的环境来参考,感觉要谨慎地多多讨论了

发布于 上海