0

是否有某个地方列出了不同数学运算需要多少周期的列表,对于像英特尔 q6600 这样的典型处理器,处理器之间的性能会有所不同,尽管有一个图表/列表会非常有用,有人在某个地方看到过吗?

IE:

math.sqr = 27 cycles
math.sin = 22 cycles
divide = 8 cycles
modulo = 4 cycles
compare a>b = 2 cycles
multiply = 1 cycles

类似的东西?

不同的比较使用多少个周期?

4

2 回答 2

4

可以在此处找到 Kentsfield(包括 Q6600)的完整列表。

然而,这还不够。一系列指令所花费的时间(通常)不仅仅是其部分的总和 - 通常可以同时执行几件事情,并且确定它们是哪些事情需要一些努力。我建议您阅读 Microarchitecture 的相关章节(Agner Fog 撰写),您将需要来查看指令可以转到哪些执行端口。

如果您只是在寻找经验法则数字,那么它们是(1c .33t 表示 1 个周期的延迟和 0.33 的倒数吞吐量,即可以在一个周期内执行 3 个独立的数据:

  • 整数加法/减法/比较/按位:1c .33t
  • 整数乘法:5c 1t
  • 整数除法 32bit: 30-60c 20-40t
  • 整数除法 64bit: 40-70c 30-40t
  • 整数移位:1c 0.5t
  • 浮动加:3c 1t
  • 浮点乘法:5c 1t
  • 平方根:6-70c
  • 正弦、余弦:100c
于 2013-04-27T13:10:54.183 回答
1

英特尔将是这方面的来源:

http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

于 2013-04-27T11:45:52.087 回答