gpt4 book ai didi

c++ - C++ 编译器可以为我自动优化 float 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:48 25 4
gpt4 key购买 nike

我想知道在某些机器上 double 可能比 float 更快。

然而,我正在执行的操作实际上只需要 float 的精度。但是,它们在图像处理中,我希望使用尽可能快的。

我能否在任何地方都使用 float 并相信优化的 VC++ 2008 编译器会在认为更合适的情况下将其转换为 double?我不明白这会如何破坏代码。

提前致谢!

最佳答案

不,编译器不会将像 float 这样的基本类型更改为 double 以进行优化。

如果您认为这是可能的,请在公共(public) header 中为您的 float 使用 typedef,例如typedef float FASTFLOAT; 并在整个代码中使用 FASTFLOAT(或任何您命名的名称)。然后,您可以更改一个中央 typedef,并更改整个代码中的类型。

我自己的经验是,float 和 double 在 x86/x64 平台上的数学运算性能基本相当,我倾向于 double。如果您正在处理大量数据(并遇到内存带宽问题,而不是计算限制),您可能会从 float 是 double 大小的一半这一事实中获得一些性能优势。

您还想探索各种优化标志的效果。根据您的目标平台要求,您可以更积极地进行优化。

关于c++ - C++ 编译器可以为我自动优化 float 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079223/

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