|
Tempestglen 发表于 2013-1-9 14:15
笑啥。
提醒猪神去温习一下phoronix 那次i3 和exynos5250的跑分,那些多线程测试,5250成绩x2,i3成绩 ...
那个,T神,我看你们吵得很凶但是不知道你们在争论啥东西,所以暂时无意于抨击任何一边。
我就是提醒一下,phoronix这个测试集不比SPEC来的综合性强,它的CPU测试部分如果我没有看错,都是测试源代码编译时间的,我在以前的帖子里说过不能使用这种偏向性较重的测试集,会出问题的。
我还是从自己最近比较熟悉的分支预测开始谈起吧,编译器代码的分支指令应该算是比较密集同时也是比较难预测准的,比如说SPEC里面囊括的那些东西,gcc编译测试的分支预测困难程度有时候仅次于eqntott真值表生成,使用不同风格的硬件动态分支预测器,比如偏向全局分支还是局部分支,历史寄存器有多长,模式表是共享还是独立,分支预测算法是否对分支resolve的更新时间敏感,都有不同程度的影响,(编译器层面怎样做静态分支预测的优化也有影响但是这个层面我不熟我就不说了)。
这意味着,如果你使用这种编译时间测试为主的测试集,可能使用局部分支预测的处理器会占便宜,全局分支预测的处理器会劣势(ARM A8是全局分支为主,如果A9、A15没有变化的话也应该是全局分支),但是如果换一个项目,比如SPEC doduc,全局分支预测就会占优势,而局部分支预测就会劣势。
所以千万不要使用同一种风格的测试集。
另外编译器优化的影响也很大,循环展开,访存局部性提升一下,指令排个序,无用代码剔除,公用子表达式消除,乱七八糟的优化可以拉开10倍差距,而SIMD优化更甚,X86的SIMD组件无论是面积还是功耗预算都比ARM大太多了,SIMD利用得好X86优势会扯得更大,你拿出来的C-ray就是一个并行性比较厉害,可以用SIMD优化的程序,所以SIMD优化一下X86就更厉害。 |
|