2008-12-26 83 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

如果您对构建类似视频游戏,操作系统,数据库服务器或虚拟化软件的内容特别感兴趣,那就值得。换句话说:如果你有一个关注性能的细分市场,需要花时间在汇编程序中完成它(并且做得对)。英特尔也是如此。