Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

Can TBB be used on the ARM core also

coolsandyforyou
Beginner
335 Views
I have a doubt in mind.. While browsing through the source codes of TBB ...at the last level i found some assembly language instructions instead of some system calls...So i started thinking that TBB is hardware specific to Intel processors.

Tell me whether it really is or not?
0 Kudos
3 Replies
RafSchietekat
Valued Contributor III
335 Views
0 Kudos
ARCH_R_Intel
Employee
335 Views
To expand on Raf's reply, there are unofficial patches, kindly provided by Raf, that provide the missing pieces for ARM on TBB.

Also, the recent sourcerelease (3.0 Update 5) of TBB should work on MacOS independent of the hardware, because in the absence of known hardware, it falls back on OS calls like OSAtomicCompareAndSwap32Barrier. (See include/tbb/machine/macos_common.h).

In the long term, what I'd like to have is a "gcc port" of TBB that uses gcc intrinsics for the atomic ops. It's probably no more work to write than macos_common.h . Of course eventually when C++0x atomics become available, we could consider doing a "C++0x port". Anyone want tocontribute a patch for either port?


0 Kudos
RafSchietekat
Valued Contributor III
335 Views

"Also, the recent source release (3.0 Update 5) of TBB should work on MacOS independent of the hardware, because in the absence of known hardware, it falls back on OS calls like OSAtomicCompareAndSwap32Barrier. (See include/tbb/machine/macos_common.h)."
Only the memory semantics extremes are provided: a full barrier (expensive) or none at all (of little use). Good for a conservative first implementation, but not very satisfactory if you're conscious about performance.

'In the long term, what I'd like to have is a "gcc port" of TBB that uses gcc intrinsics for the atomic ops. It's probably no more work to write than macos_common.h . Of course eventually when C++0x atomics become available, we could consider doing a "C++0x port". Anyone want to contribute a patch for either port?"'
"In most cases, these builtins are considered a full barrier.", again not very appealing. I'm not sure that C++0x will come to the rescue in time for those platforms not yet supported by TBB? In the meantime, a bespoke implementation still seems best to me.

0 Kudos
Reply