gpt4 book ai didi

performance - 为什么 float 除法很慢?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:17 25 4
gpt4 key购买 nike

浮点除法的算法步骤是什么?

为什么结果比乘法慢?

是不是和我们手工除法一样?反复除以除数,再减去余数,重新对齐数,继续直到余数小于特定值?

此外,为什么我们不做

反而会提高性能
a = b / c 

我们做

d = 1 / c
a = b * d

?

编辑:基本上我问是因为有人要求我根据权重分配在竞争者之间分配一个值。我用整数做了所有这些,后来被要求转换为 float ,这导致性能下降。我只是想知道 C 或 C++ 如何执行这些会导致速度缓慢的操作。

最佳答案

FPU 除法通常基本上使用 Newton-Raphson(或其他一些算法)来获得倒数,然后乘以该倒数。这就是倒数运算比一般除法运算稍快的原因。

This HP paper (这实际上比我遇到的大多数谈论 Newton-Raphson 的论文更容易理解)关于浮点除法是这样说的:

Floating point division and square root take considerably longer to compute than addition and multiplication. The latter two are computed directly while the former are usually computed with an iterative algorithm. The most common approach is to use a division-free Newton-Raphson iteration to get an approximation to the reciprocal of the denominator (division) or the reciprocal square root, and then multiply by the numerator (division) or input argument (square root).

关于performance - 为什么 float 除法很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/506237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com