2011-02-06 46 views
0

在parallel_中使用SSE2是一个好主意吗?将TBB与SSE2内部函数混合

由于SSE2寄存器的数量有限,是否会导致性能方面的损失?

每个CPU芯片都有自己的SSE2寄存器吗?

回答

1

在parallel_中使用SSE2是一个好主意吗? 这取决于。这绝对不是一个坏主意。您应该剖析您的代码,并在性能最重要的地方使用内部函数。

由于SSE2寄存器的数量有限,是否会导致性能方面的损失? 如果你关注注册压力,那么你不必担心这一点。当您使用内在函数时,编译器为您执行寄存器分配(与编写程序集不同)。在内部函数中手写的代码通常比从高级语言编译的代码更紧凑。您应该在每次更改之后对您的代码进行概要分析,以查看性能是否有所提高。

每个CPU芯片是否都有自己的SSE2寄存器? 每个逻辑CPU都有自己的8位(在32位模式下)或16位(在64位模式下)的XMM寄存器。在现代CPU中,如果启用了超线程,每个内核都是一个逻辑CPU,甚至两个逻辑CPU。

4

每个CPU核心都有自己的SSE寄存器。线程和SSE几乎没有关系。随意使用两者。