我刚刚注意到,在我们的项目都留下了“启用增强指令集”标志未设置,可能只是一时疏忽。

启用标志之前,我想问一下,如果有人看到任何真实世界的性能改进使得它?

我想我们会看到一些改善我们的应用程序不断做基于浮点calucations,但它不是一个重要组成部分,。

有帮助吗?

解决方案

因此,在概括地说:此设置仅允许直接映射上SSE指令某些固有功能。在普通的C ++程序你不使用这些内部函数,所以这个设置不会提高性能。

如果您需要更高的性能,你可以尝试找到一个编译器重写代码中使用SSE指令(英特尔声称它的编译器可以),但它可能是更明智的去为多核(使用OpenMP或.NET 4.0),或使用GPU,这是更快,更比SSE灵活。

其他提示

在性能上的好处将取决于你是否项目采用密集的数学计算。对于许多任务(网络,文字处理,数据管理)这根本不是因为没有(或几乎没有)浮点运算使用那里的情况。因此,将不会有性能提升的。

使用由编译器生成将不会产生最佳性能SSE / SSE2指令。首先,你不会有实际的代码生成任何控制。在有些情况下,你需要一个新的系统上的旧制度,支持SSE2,SSE /代码上使用旧式组(x87)代码的情况。您可能还需要在大多数最新的系统采取SSE3的优势。为此,我建议你检查使用cpuid指令,然后切换到,可以采取的处理能力,最有优势的实现处理器类型。然后,您可以在实现目标SSE / SSE2使用编译器内在。要定位SSE3,你需要它,我试图找到在互联网上的专用库。

我相信,必须存在用于执行的处理器功能的分析,并允许最佳代码switcing库。我只是需要一些时间来看看在网络上也。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top