2010-10-16 42 views
1

Hei!舊版本GPS上的DPPS

我需要優化c中的一些矩陣乘法代碼,並且我正在使用SSE向量指令來完成它。我還發現存在SSE4.1,它已經有了dot-product,dpps的說明。

的問題是,機器上的這個軟件是在那裏工作是安裝了舊版本的gcc(4.1.2),這對SSE4.1的支持,但它有一個支持它的處理器(唐」不問問爲什麼gcc版本比處理器更舊...)。所以我不能使用_mm_dp_ps函數。

我正在玩一些將彙編代碼添加到c的東西。問題是我從來沒有使用過彙編代碼,所以它真的讓人困惑。編寫彙編程序中處理向量指令的所有代碼是否更有效?

所以我問這裏是否有其他方法如何使用dpps指令,如果它甚至值得使用?

回答

2

坦率地說,我沒有看到問題。根據您的描述,似乎需要執行最終代碼的機器支持SSE4.1和DPPS。因此,一旦你的源代碼 - 包括內部(或彙編) - 被編譯,它可以在這臺機器上執行。你只需要用更新版本的編譯器編譯代碼,或者在你正在討論的機器上安裝一個更新的版本,或者通過在不同的機器上編譯然後將可執行文件複製到它將要運行的機器上運行。

至於與DPPS優化是否是值得的,這將取決於你的代碼(即,有多少潛在的優化有 - 你就應該剖析徹底找出你的瓶頸),性能有多麼重要實際在這種特殊情況下(即它是值得時間?;時間就是金錢)

顯然,如果你有一點裝配經驗,在ASM實現你的常規,或者甚至只是寫在你自己的ASM包裝函數DPPS,變得不那麼有吸引力。 (但是肯定可以做。)