2008-12-26 78 views
5

我目前正在學習與英特爾並行化庫相關的API,如TBB,MKL和IPP。不過,我在想,是否值得看看AMD在這個難題中的一部分。或者這只是浪費時間? (我必須承認,我不知道AMD的庫支持的線索 - 在所有 - 所以會感激你可能有任何意見)值得學習AMD特定的API嗎?

只是爲了澄清,我之所以要去英特爾的方法是因爲:1)的API非常好; 2)英特爾似乎像API支持一樣認真對待工具支持。 (再次,我有不知道 AMD是如何在這個部門做的。)

回答

9

MKL和IPP庫將在AMD機器上執行(幾乎)。我的猜測是,TBB在AMD盒子上運行得也不錯。如果我不得不建議一種對兩者都有益且有用的技術,那就是掌握OpenMP庫。帶有OpenMP擴展的英特爾編譯器速度驚人,並且也可以與AMD芯片一起使用。

3

如果你的公司在你的軟件上銷售的只是英特爾服務器的軟件包,那麼你不應該費心學習AMD的方法。但是如果你將不得不爲兩個(或許多)不同的平臺提供軟件,那麼可能需要研究不同的技術。爲硬件特定的庫創建包裝將非常困難。 (特別是因爲涉及到線程)。

而且你絕對不想爲每個硬件配置編寫完全獨立的實現。事實上,如果您的軟件將被一般用戶使用,那麼您可能想放棄英特爾技術,並使用標準線程技術。我並不是故意讓人灰心,但我相信英特爾線程庫對於所有的意圖和目的來說都有點超前於他們的時間。

+0

他們是否超越了所有意圖和目的的時間,或者只是爲了密集的目的?無論如何,密集的目的是什麼? – Karl 2008-12-27 01:52:49

+1

獲得您的B.S.在C.S.爲了得到一份工作編程電腦是一個「意圖和目的」。獲得您的博士學位。在C.S.中做同樣的事情是一個「密集目的」。 ;-) – Kevin 2008-12-27 10:20:27

7

如果您對構建類似視頻遊戲,操作系統,數據庫服務器或虛擬化軟件的內容特別感興趣,那就值得。換句話說:如果你有一個關注性能的細分市場,需要花時間在彙編程序中完成它(並且做得對)。英特爾也是如此。