FLT乘法的时间很长

这个问题在这里已经有了答案:

  • 为什么将0.1f改为0会使性能下降10倍? 4个答案
  • 非规范化数字 - IEEE 754浮点数1答案

  • 花费很长时间做的原因.9 * FLT_MIN是结果小于浮点数可以表示的最小值。 这会导致处理器引发异常,该异常由操作系统处理,并可能涉及在用户空间中调用函数。 与一个简单的浮点乘法相比,这需要很长时间,而这完全是用硬件完成的。

    如何解决它? 取决于你的平台和构建工具。 如果您使用的是gcc,那么它会尝试使用CPU设置来优化某些操作,具体取决于您设置的标志。 查看gcc手册中的-ffast-math和相关的浮点优化标志。 请注意,使用这些标志可能会导致不符合IEEE浮点规范的结果。

    链接地址: http://www.djcxy.com/p/85513.html

    上一篇: huge elapsed time for multiplication of FLT

    下一篇: Avoiding denormal values in C++