2011-02-06 59 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幾乎沒有關係。隨意使用兩者。