Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在XCode中将非规范刷新设置为零(FTZ) 我使用XCODE在C++上开发OSX山狮,在本地机器上运行。我遇到了与非规范数字相关的性能问题,我希望设置FTZ标志,以便将它们刷新为零。(我已经检查过非规范化确实是问题所在,在我的例子中,将它们刷新为零不会导致准确性问题。)但是,我找不到任何关于如何在XCode中实现这一点的信息。这是我可以在构建设置中更改的选项吗?或者我应该在某个地方键入一些代码?如果我正确理解“/usr/include/fenv.h”中的评论,我将不胜感激。_Xcode_Performance_Gcc - Fatal编程技术网

在XCode中将非规范刷新设置为零(FTZ) 我使用XCODE在C++上开发OSX山狮,在本地机器上运行。我遇到了与非规范数字相关的性能问题,我希望设置FTZ标志,以便将它们刷新为零。(我已经检查过非规范化确实是问题所在,在我的例子中,将它们刷新为零不会导致准确性问题。)但是,我找不到任何关于如何在XCode中实现这一点的信息。这是我可以在构建设置中更改的选项吗?或者我应该在某个地方键入一些代码?如果我正确理解“/usr/include/fenv.h”中的评论,我将不胜感激。

在XCode中将非规范刷新设置为零(FTZ) 我使用XCODE在C++上开发OSX山狮,在本地机器上运行。我遇到了与非规范数字相关的性能问题,我希望设置FTZ标志,以便将它们刷新为零。(我已经检查过非规范化确实是问题所在,在我的例子中,将它们刷新为零不会导致准确性问题。)但是,我找不到任何关于如何在XCode中实现这一点的信息。这是我可以在构建设置中更改的选项吗?或者我应该在某个地方键入一些代码?如果我正确理解“/usr/include/fenv.h”中的评论,我将不胜感激。,xcode,performance,gcc,Xcode,Performance,Gcc,#include <fenv.h> fesetenv(FE_DFL_DISABLE_SSE_DENORMS_ENV); #包括 fesetenv(FE_DFL_DISABLE_SSE_DENORMS_ENV); 你应该做你想做的 FE_DFL_DISABLE_SSE_DENORMS_ENV A pointer to a fenv_t object with the default floating-point state modifed to set the D

#include <fenv.h>
fesetenv(FE_DFL_DISABLE_SSE_DENORMS_ENV);
#包括
fesetenv(FE_DFL_DISABLE_SSE_DENORMS_ENV);
你应该做你想做的

FE_DFL_DISABLE_SSE_DENORMS_ENV A pointer to a fenv_t object with the default floating-point state modifed to set the DAZ and FZ bits in the SSE status/control register. When using this environment, denormals encountered by SSE based calculation (which normally should be all single and double precision scalar floating point calculations, and all SSE/SSE2/SSE3 computation) will be treated as zero. Calculation results that are denormals will also be truncated to zero. FE_DFL_禁用_SSE_DENORMS_ENV 指向修改了默认浮点状态的fenv_t对象的指针 在SSE状态/控制寄存器中设置DAZ和FZ位。使用时 在这种环境下,基于SSE的计算(其中 通常应为所有单精度和双精度标量浮点 计算和所有SSE/SSE2/SSE3计算)将被视为零。 非规范的计算结果也将被截断为零。 设置此选项可将中程序的运行时间从27秒减少到0.3秒(链接由@Mysticial在其评论中给出)
(MacBook Pro,2.5 GHz Intel Core 2 Duo)

XCode是否支持SSE内部函数?如果是这样的话,那么应该是相关的。即,添加
\u MM\u SET\u FLUSH\u ZERO\u模式(\u MM\u FLUSH\u ZERO\u ON)到程序的开头。@Mysticial:我找不到_MM_SET_FLUSH_ZERO_MODE和_MM_FLUSH_ZERO_ON的定义。你能告诉我这些是从哪里来的吗?应该在
中。它是编译器扩展,它存在于几乎所有主流的C和C++编译器中。不过我对XCode不太清楚。@Mysticial:谢谢<代码>
在Xcode中可用,并且两种模式都是
\u MM\u SET\u FLUSH\u ZERO\u MODE(\u MM\u FLUSH\u ZERO\u ON)
fesetenv(FE\u DFL\u DISABLE\u SSE\u DENORMS\u ENV)似乎正常。我收到一个错误“未知类型名称'fesetenv'”。我不知道为什么,因为声明
extern int fesetenv(const fenv_t*/*envp*/)在fenv.h中。我可能只是在做些傻事——你知道那可能是什么吗?@Nathaniel:真奇怪。您确定包含
吗?我可以为OSX和iOS编译它,没有问题。哦,天哪,我真的做了一些愚蠢的事情——我试图将fesetenv()调用放在任何代码块之外。这非常有效,非常感谢!由于iPhone不支持SSE,在iOS上是否有退路?