Intel TBB will work on AMD processors? [duplicate] Intel TBB will work on AMD processors? [duplicate] multithreading multithreading

Intel TBB will work on AMD processors? [duplicate]


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.


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.

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

(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.


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:

What compilers, operating systems and processors are supported?

The project is dedicated to supporting all compilers, all OSes and all processors as a cornerstone objective of the project. Up to date information on status is available on the web site.

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.