英特尔TBB将在AMD处理器上运行?

时间:2011-06-21 15:34:02

标签: c++ c intel multithreading tbb

  

可能重复:
  AMD multi-core programming

Intel TBB处理器是否依赖?它可以在amd或ARM上工作(例如在meeGo下吗?)

3 个答案:

答案 0 :(得分:18)

TBB并非完全独立于处理器;有一个(相当小的)层将TBB的其余部分与处理器体系结构隔离开来(主要是为了提供原子读 - 修改 - 写操作,如比较和交换)和某些操作系统的特性。该层的实现也使用一些特定于编译器的东西,例如内联汇编器或内置函数(内在函数)。

TBB将在x86(32位和64位)处理器上开箱即用,包括来自AMD的处理器,除了那些没有mfence指令的旧处理器。

至于ARM,没有直接支持,但TBB 3.0 Update 7添加了TBB平台隔离层的实现,该层使用GCC原子内置函数。因此,绝对有可能使TBB在ARM上运行,可能需要相当少的额外工作。实际上TBB论坛有a report about certain success with such a port

并且,Intel(R) AppUp SDK for MeeGocontains TBB,但它仅适用于英特尔的Atom处理器。

答案 1 :(得分:9)

对于AMD无论如何,答案是肯定的。

对于ARM而言,从英特尔论坛的反馈来看,事情变得更加复杂。我没有看到有人这样工作?例如,请参阅http://software.intel.com/en-us/forums/showthread.php?t=74346

商业版3.0在其关于推荐硬件的发行说明中有这个:我认为其他平台可能更为粗略支持。

Microsoft* Windows* Systems
    Intel(R) Core(TM) 2 Duo processor or Intel(R) Xeon(R) processor
        or higher
Linux* Systems
    Intel(R) Core(TM) 2 Duo processor or Intel(R) Xeon(R) processor
        or Intel(R) Itanium(R) processor or higher
Mac OS* X Systems
    Intel(R) Core(TM) 2 Duo processor or higher

(更新信息2014年12月) ARM is supported on TBB as of 4.1 Update 3, with fixes in 4.2 Update 3.我自己没有用过这个,所以无法证明这个端口的稳健性。

答案 2 :(得分:3)

不,它不依赖于处理器。它只是一个C ++库,所以只要您使用的编译器能够编译它就应该没问题。从您链接到的网站的常见问题解答:

  

支持哪些编译器,操作系统和处理器?

     

该项目致力于支持所有编译器,所有操作系统和所有处理器作为项目的基石目标。网站上提供有关状态的最新信息。

编辑:更多地看一下,看起来人们在使用ARM处理器时遇到了问题,但没有什么是不可克服的。