是否有某个地方列出了不同数学运算需要多少周期的列表,对于像英特尔 q6600 这样的典型处理器,处理器之间的性能会有所不同,尽管有一个图表/列表会非常有用,有人在某个地方看到过吗?
IE:
math.sqr = 27 cycles
math.sin = 22 cycles
divide = 8 cycles
modulo = 4 cycles
compare a>b = 2 cycles
multiply = 1 cycles
类似的东西?
不同的比较使用多少个周期?
是否有某个地方列出了不同数学运算需要多少周期的列表,对于像英特尔 q6600 这样的典型处理器,处理器之间的性能会有所不同,尽管有一个图表/列表会非常有用,有人在某个地方看到过吗?
IE:
math.sqr = 27 cycles
math.sin = 22 cycles
divide = 8 cycles
modulo = 4 cycles
compare a>b = 2 cycles
multiply = 1 cycles
类似的东西?
不同的比较使用多少个周期?
可以在此处找到 Kentsfield(包括 Q6600)的完整列表。
然而,这还不够。一系列指令所花费的时间(通常)不仅仅是其部分的总和 - 通常可以同时执行几件事情,并且确定它们是哪些事情需要一些努力。我建议您阅读 Microarchitecture 的相关章节(Agner Fog 撰写),您将需要它来查看指令可以转到哪些执行端口。
如果您只是在寻找经验法则数字,那么它们是(1c .33t 表示 1 个周期的延迟和 0.33 的倒数吞吐量,即可以在一个周期内执行 3 个独立的数据:
英特尔将是这方面的来源:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html