【问题标题】:CPU floating operations costCPU 浮动运算成本
【发布时间】:2011-02-22 16:29:48
【问题描述】:

我对现代台式机 CPU 的一些浮点运算的时间成本很感兴趣,以优化数学评估。特别是我对explog 等复杂操作与+*/ 等简单操作之间的比较感兴趣。

我试图搜索此信息,但找不到来源。

浮点运算的成本是多少?

【问题讨论】:

  • 为什么不写一个循环来做 10,000 * 和 10,000 exp 并收集数据?
  • 什么CPU? x86家族? 32 位还是 64 位?

标签: performance floating-point cpu


【解决方案1】:

现代 CPU 将在几个时钟内执行浮点 + 和 -。许多人会用少量时钟做 *,但比 + 和 - 更多。除法通常比 * 慢得多。超越数比除数慢。

您可能会通过查看英特尔优化手册获得一些关于速度的想法。

【讨论】:

  • 是的,这就是我需要的:英特尔优化手册的 C-25 页
  • 为什么我可以找到 sin/cos/tan 的指令,但找不到 log/exp 的指令?
  • 它们在英特尔指令集中。我不确定它是否直接计算这些; IIRC,它计算一些中间结果,从中可以很容易地计算出来。仔细阅读 FP 指令集。
  • wiso,Fog Agner 提供了许多 CPU 的表:agner.org/optimize/instruction_tables.pdf 在 Sandy Bridge 中,例如,计算日志 (FYL2X) 将需要近 500 个微操作(该指令是微编码的)和 700+时钟滴答声。
  • @wiso:请注意,好的数学库使用硬件超越运算来实现单精度或双精度,而是使用明显更快的软件实现 比优化手册中列出的指令时序(有时快一个数量级)。
猜你喜欢
  • 2011-07-25
  • 2012-11-12
  • 2013-01-25
  • 1970-01-01
  • 2016-08-23
  • 2012-12-22
相关资源
最近更新 更多