gpt4 book ai didi

xcode - 在 XCode 中将非正常刷新设置为零(FTZ)

转载 作者:行者123 更新时间:2023-12-05 00:29:55 24 4
gpt4 key购买 nike

我正在使用 XCode 在 OS X Mountain Lion 上用 C++ 进行开发,以在本地机器上运行。我遇到了与非正规数相关的性能问题,我希望设置 FTZ 标志,以便将它们刷新为零。 (我已经检查过非规范确实是问题所在,在我的情况下,将它们刷新为零不会导致准确性问题。)但是,我找不到任何关于我应该如何在 XCode 中实际实现这一点的信息。这是我可以在build设置中更改的选项吗?或者我应该在某处输入一些代码?任何帮助将非常感激。

最佳答案

如果我正确理解“/usr/include/fenv.h”中的注释,

#include <fenv.h>
fesetenv(FE_DFL_DISABLE_SSE_DENORMS_ENV);

应该做你想做的。

FE_DFL_DISABLE_SSE_DENORMS_ENV

指向修改了默认浮点状态的 fenv_t 对象的指针
设置 SSE 状态/控制寄存器中的 DAZ 和 FZ 位。使用时
在这种环境下,基于 SSE 的计算遇到的非规范化(其中
通常应该都是单精度和 double 标量浮点
计算,以及所有 SSE/SSE2/SSE3 计算)将被视为零。
不规范的计算结果也将被截断为零。

设置这个选项减少了 Why does changing 0.1f to 0 slow down performance by 10x?中程序的运行时间(@Mysticial 在他的评论中给出的链接)从 27 秒到 0.3 秒
(MacBook Pro,2.5 GHz Intel Core 2 Duo)。

关于xcode - 在 XCode 中将非正常刷新设置为零(FTZ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16747321/

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