首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么fp除法运算比倒数运算加乘法运算慢?

为什么fp除法运算比倒数运算加乘法运算慢?
EN

Stack Overflow用户
提问于 2016-07-13 03:22:00
回答 1查看 357关注 0票数 5

根据Agner的指令表,一个fp除法比一个倒数运算和一个乘法运算要慢。(这在测量的x86体系结构中似乎很常见)

这是从一张桌子上摘录来的河岸建筑。

代码语言:javascript
运行
复制
MULSS MULSD    x,x/m    1  5-6   0.5   P01  fma
MULPS MULPD    x,x/m    1  5-6   0.5   P01  fma
VMULPS VMULPD  y,y,y/m  2  5-6   1     P01  fma
DIVSS DIVPS    x,x/m    1  9-24  5-10  P01  fp
VDIVPS         y,y,y/m  2  9-24  9-20  P01  fp
DIVSD DIVPD    x,x/m    1  9-27  5-10  P01  fp
VDIVPD         y,y,y/m  2  9-27  9-18  P01  fp
RCPSS/PS       x,x/m    1  5     1     P01  fp

第四个值是延迟。所以乘法运算是5-6次,除法运算是9-24次,倒数运算是5个周期。由于24 >6+ 5,我想知道为什么两个单独的操作比一个操作更快,从而得到基本相同的结果。

我怀疑这个问题的答案涉及误差的测量。也许除法比倒数加乘精确得多。如果是这样的话,如何比较误差测量?例如,是否存在线性关系,因为除法的速度几乎是倒数+乘的两倍,它是否也是倒数+乘的两倍?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-13 20:07:04

IIRC,快速近似倒数除法和sqrt指令基本上是一个表查找(从内部表),没有迭代精化,使精确的除法/平方根缓慢和难以流水线。这就是为什么/如何用一个时钟吞吐量来实现它们。

注意,直到最近的微体系结构之前,divss吞吐量并不比延迟好得多,甚至Skylake非常令人印象深刻的FP divide / sqrt单元也没有完全流水线化。

至于您问题的其余部分,答案与rsqrt相同,因此请参阅这个问题x?

(谢谢罗斯挖掘链接)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38342154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档