Intel TBB will work on AMD processors? [duplicate]
Asked Answered
E

3

13

Possible Duplicate:
AMD multi-core programming

Is Intel TBB processor dependent? Will it work on amd or on ARM (under meeGo for example?)

Eger answered 21/6, 2011 at 15:34 Comment(1)
See the statement of intent to support all processors in the FAQ hereShantelleshantha
C
11

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 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 not used this myself so cannot attest to the robustness of this port.

Cascio answered 21/6, 2011 at 15:43 Comment(1)
Given AMD's recent foray into ARM64, you might want to revise your answer to be specific about AMD x86.Ausgleich
C
19

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.

Chancemedley answered 21/6, 2011 at 20:38 Comment(0)
C
11

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 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 not used this myself so cannot attest to the robustness of this port.

Cascio answered 21/6, 2011 at 15:43 Comment(1)
Given AMD's recent foray into ARM64, you might want to revise your answer to be specific about AMD x86.Ausgleich
K
4

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.

Khufu answered 21/6, 2011 at 15:44 Comment(5)
I would give this a "yes, but..." - for threading, there is a lot of difference between clean compilation and tailoring/optimization for a particular target platform. I would not stake my career on this statement of intent, in short.Cascio
Ok so Intel completely focuses TBB development on P4, later and compatible ( by this I think they mean AMD ) hardware. They don't even focus on getting it to work on their Atom platform so I doubt they care about anything smaller like ARM.Khufu
Atom is an x86 processor, and if it runs a supported OS, TBB should work out-of-the-box there.Chancemedley
It will work but as Steve Townsend points out further up there is a difference between will work and works well.Khufu
The API is not processor dependent. The implementation is. And it is not strictly a matter of having a C++ compiler - TBB 4.2 has no less than 88 references to inline assembly, all of which are, by definition, architecture-specific (which implies processor specificity).Ausgleich

© 2022 - 2024 — McMap. All rights reserved.