[ACCEPTED]-Intel TBB will work on AMD processors?-tbb

Accepted answer
Score: 18

TBB is not completely processor-independent; there 19 is a (rather small) layer that isolates 18 the rest of TBB from processor architecture 17 (primarily to provide atomic read-modify-write 16 operations such as compare-and-swap) and 15 certain OS pecularities. Implementations 14 of this layer use some compiler-specific 13 stuff as well, such as inlined assembler 12 or built-in functions (intrinsics).

TBB will 11 work out-of-the-box on x86 (32 and 64 bit) processors 10 including those from AMD, except for rather 9 old ones that do not have mfence instruction.

As 8 for ARM, there is no direct support, but 7 TBB 3.0 Update 7 added an implementation of TBB's platform 6 isolation layer that uses GCC atomic built-ins. So 5 it is definitely possible to make TBB running 4 on ARM, probably with rather small additional 3 effort. And actually there was a report about certain success with such a port at the TBB 2 forum.

And, Intel(R) AppUp SDK for MeeGo also contains TBB, though it's only for 1 Intel's Atom processor.

Score: 11

The answer is yes, for AMD anyhow.

For ARM 9 things are more complex, judging by feedback 8 on the Intel forums. I don't see anybody 7 has gotten this working? For example see 6 http://software.intel.com/en-us/forums/showthread.php?t=74346

The commercial version 3.0 has this in its 5 release notes regarding recommended hardware: other 4 platforms may be more sketchily supported, I 3 would think.

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

(Updated info Dec 2014) ARM is supported on TBB as of 4.1 Update 3, with fixes in 4.2 Update 3. I have 2 not used this myself so cannot attest to 1 the robustness of this port.

Score: 4

No, it is not processor dependent. It is 13 just a C++ library so as long as the compiler 12 you are using is capable of compiling it 11 you should be fine. From the FAQ of the 10 website you linked to:

What compilers, operating 9 systems and processors are supported?

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

Edit: Poking 4 around a little more it looks like people 3 are having problems getting it working on 2 ARM processors, but nothing that should 1 be insurmountable.

More Related questions