【发布时间】:2013-03-22 16:01:25
【问题描述】:
我并没有真正尝试优化任何东西,但我记得我一直从程序员那里听到这个,我认为这是事实。毕竟他们应该知道这些东西。
但我想知道为什么除法实际上比乘法慢?除法不只是一种美化的减法,而乘法是一种美化的加法吗?所以从数学上讲,我不明白为什么选择一种方式或另一种方式在计算上会产生非常不同的成本。
任何人都可以澄清原因/原因以便我知道,而不是我从其他程序员那里听到的我之前问过的是:“因为”。
【问题讨论】:
-
"After all they are supposed to know this stuff."- 你可能会对大多数人不知道的事情感到惊讶。 -
您将不得不询问电子工程师,这是一个电路设计问题。创建硬件乘法器非常简单,而硬件除法器则不然。实际的分压器电路是迭代的,因此需要更长的时间。在electronics.stackexchange.com询问
-
维基百科(参见关于 FLOPS 的文章)和其他来源 (en.community.dell.com/techcenter/high-performance-computing/w/…) 声称典型的 CPU 每个时钟周期可以执行 4 个浮点运算。这似乎与类型无关。在此之后,除法将与乘法一样昂贵/便宜。谁自愿做一个基准测试?
-
简而言之:商估计和修正步骤。
-
你说得对,乘法分解为多次加法,除法分解为多次减法。不同之处在于,乘法中的加法可以并行完成,而在除法中,您不能进行下一次减法,直到完成前一个并进行比较。因此,硬件乘法器将通过同时计算和总结许多子产品来利用这种固有的并行性,但代价是增加了面积。司没有这种奢侈。
标签: performance division cpu-architecture multiplication