MIPS整数Sandy Bridge

时间:2012-11-09 13:11:06

标签: assembly x86

我在程序集中编写了一个算术整数库。我想估计与我的处理器(Intel Sandy Bridge)的峰值性能相比的性能。

由于Sandy Bridge的3个ALU执行整数运算,“3 *(核心数)*频率”是否足以得到估计值? 99%的程序集是addq, adcq, mulq指令。

2 个答案:

答案 0 :(得分:1)

没有

有许多因素会影响任何代码的速度。诸如导致停顿的指令之间的依赖关系,缓存访问和缓存速度,缓存未命中和RAM速度等等。

对于Sandy Bridge而言,还有超线程(这些ALU由2个逻辑CPU共享)以及turbo-boost和电源管理。然后是分页(TLB查找和TLB未命中)。

除此之外还有操作系统开销;包括内核如何快速解决页面错误(用于各种“写入时复制”和“写入时分配”目的),如何在CPU之间调度所有工作,发生多少任务切换以及速度有多快,互斥/如何futexes被处理等

答案 1 :(得分:0)

如果我们谈论的是1980年代的处理器,如8086或68000,那么这将是有效的,每条指令都将在固定的时间内运行。

现代处理器变得非常难以手动进行基准测试,因为他们采用了许多技巧来使指令运行得更快,大型缓存,流水线,无序指令执行等。最好的方法是为代码计时。在进行基准测试时,您还应该考虑在其他核心中运行的代码的影响。根据处理器的总体负载,您的进程可以以不同的速度运行,例如最新的i7芯片。