Intel TBB 可以在 AMD 处理器上运行吗?
Possible Duplicate:
AMD multi-core programming
Is Intel TBB processor dependent? Will it work on amd or on ARM (under meeGo for example?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
TBB 并不完全独立于处理器;有一个(相当小的)层将 TBB 的其余部分与处理器架构(主要是提供原子读-修改-写操作,例如比较和交换)和某些操作系统特性隔离开来。该层的实现也使用一些特定于编译器的东西,例如内联汇编器或内置函数(内在函数)。
TBB 将在包括 AMD 在内的 x86(32 和 64 位)处理器上开箱即用,但没有 mfence 指令的较旧处理器除外。
至于ARM,没有直接支持,但TBB 3.0 Update 7添加了以下实现TBB 的平台隔离层使用 GCC 原子内置函数。因此,让 TBB 在 ARM 上运行绝对是可能的,可能只需付出相当小的额外努力。实际上有一份关于此类移植取得一定成功的报告 在 TBB 论坛上。
而且,适用于 MeeGo 的英特尔(R) AppUp SDK 还包含 TBB,尽管它仅适用于 Intel 的 Atom 处理器。
TBB is not completely processor-independent; there is a (rather small) layer that isolates the rest of TBB from processor architecture (primarily to provide atomic read-modify-write operations such as compare-and-swap) and certain OS pecularities. Implementations of this layer use some compiler-specific stuff as well, such as inlined assembler or built-in functions (intrinsics).
TBB will work out-of-the-box on x86 (32 and 64 bit) processors including those from AMD, except for rather old ones that do not have
mfence
instruction.As for ARM, there is no direct support, but TBB 3.0 Update 7 added an implementation of TBB's platform isolation layer that uses GCC atomic built-ins. So it is definitely possible to make TBB running on ARM, probably with rather small additional effort. And actually there was a report about certain success with such a port at the TBB forum.
And, Intel(R) AppUp SDK for MeeGo also contains TBB, though it's only for Intel's Atom processor.
无论如何,对于 AMD 来说,答案是肯定的。
从英特尔论坛上的反馈来看,对于 ARM 来说事情更加复杂。我没看到有人成功实现这个功能了吗?例如,请参阅 http://software.intel.com/en- us/forums/showthread.php?t=74346
商业版本 3.0 在其关于推荐硬件的发行说明中有这样的内容:我认为其他平台可能会得到更粗略的支持。
(2014 年 12 月更新信息)
从 4.1 Update 3 开始,TBB 支持 ARM,并在 4.2 Update 3 中进行了修复。< /a> 我自己没有使用过这个,所以无法证明这个端口的稳健性。
The answer is yes, for AMD anyhow.
For ARM things are more complex, judging by feedback on the Intel forums. I don't see anybody has gotten this working? For example see http://software.intel.com/en-us/forums/showthread.php?t=74346
The commercial version 3.0 has this in its release notes regarding recommended hardware: other platforms may be more sketchily supported, I would think.
(Updated info Dec 2014)
ARM is supported on TBB as of 4.1 Update 3, with fixes in 4.2 Update 3. I have not used this myself so cannot attest to the robustness of this port.
不,它不依赖于处理器。它只是一个 C++ 库,因此只要您使用的编译器能够编译它就应该没问题。从您链接到的网站的常见问题解答中:
编辑:再仔细研究一下,似乎人们在 ARM 处理器上运行时遇到了问题,但没有什么是无法克服的。
No, it is not processor dependent. It is just a C++ library so as long as the compiler you are using is capable of compiling it you should be fine. From the FAQ of the website you linked to:
Edit: Poking around a little more it looks like people are having problems getting it working on ARM processors, but nothing that should be insurmountable.