【问题标题】:Do different arithmetic operations have different processing times?不同的算术运算是否有不同的处理时间?
【发布时间】:2014-07-29 18:09:35
【问题描述】:

在处理器使用方面,基本算术运算是否相同。例如,如果我在循环中进行加法与除法,加法的计算时间会小于除法的计算时间吗?

我不确定这个问题是属于这里还是属于计算机科学 SE

【问题讨论】:

    标签: language-agnostic arithmetic-expressions


    【解决方案1】:

    是的。不同的机器指令并不同样昂贵。

    您可以自己进行测量,也可以使用this question 中的参考资料之一来帮助您了解各种说明的成本。

    【讨论】:

      【解决方案2】:

      是的。这是一个简单的例子:

      http://my.safaribooksonline.com/book/hardware/9788131732465/instruction-set-and-instruction-timing-of-8086/app_c

      这些是大型旧架构 8086 的微码和运行时间。这是一个相当简单的起点。

      相关说明,它们以周期或时钟为单位进行测量,并且一切都以 cpu 的速度移动(它们在微处理器的主时钟或频率上同步)

      如果您在该表上向下滚动,您会看到一个除法需要 80 到 150 个周期。

      还要注意操作速度受操作数所在内存区域的影响。

      请注意,在现代处理器上,您可以同时执行并行指令(即使 cpu 是单线程的),其中一些指令是乱序执行的,那么向量指令会使问题更加模糊。

      即SSE 乘法可以在一次操作中乘以多个数字(需要多次)

      【讨论】:

      • 谢谢。基本上我想知道我是否必须从数据集中计算方差,我应该使用增量算法计算它还是计算平方和并最终得到方差。
      • en.wikipedia.org/wiki/… 此处为伪代码。更好地使用增量解决方案来解决问题。
      猜你喜欢
      • 2023-04-08
      • 2018-12-08
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多