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

Does TBB support Alpha ISA

chenxuhao
Beginner
1,827 Views
I try to cross-compile TBB version of blackscholes (PARSEC benchmark)for Alpha ISA, butthere is an error: root@gem5-desktop:/home/parsec-2.1#parsecmgmt-abuild-calpha-gcc-tbb-pblackscholes [PARSEC]Packagestobuild:blackscholes [PARSEC][==========Buildingpackageblackscholes==========] [PARSEC][----------Analyzingpackageblackscholes----------] [PARSEC]blackscholesdependson:tbblib [PARSEC][----------Analyzingpackagetbblib----------] [PARSEC]Packagetbblibalreadyexists,proceeding. [PARSEC][----------Buildingpackageblackscholes----------] [PARSEC]Removingoldbuilddirectory. [PARSEC]Copyingsourcecodeofpackageblackscholes. [PARSEC]Running'envversion=tbb/usr/bin/make': rm-fblackscholes /home/alphaev67-unknown-linux-gnu/bin/alphaev67-unknown-linux-gnu-g++-O3-funroll-loops-fprefetch-loop-arrays-fpermissive-fno-exceptions-static-libgcc-Wl,--hash-style=both,--as-needed-DPARSEC_VERSION=2.1-I/home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include-DTBB_VERSION-DN=960-DNCO=4blackscholes.tbb.cpp-L/usr/lib64-L/usr/lib-L/home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/lib-ltbb-ldl-lrt-lpthread-oblackscholes Infileincludedfrom/home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/aligned_space.h:33, from/home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/parallel_reduce.h:33, fromblackscholes.tbb.cpp:15: /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:91:2:error:#errorMinimalrequirementsfortbb_machine.hnotsatisfied Infileincludedfrom/home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/aligned_space.h:33, from/home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/parallel_reduce.h:33, fromblackscholes.tbb.cpp:15: /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Infunction'void__TBB_Pause(int32_t)': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:119:error:'__TBB_Yield'wasnotdeclaredinthisscope /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Inmemberfunction'voidtbb::internal::AtomicBackoff::pause()': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:145:error:'__TBB_Yield'wasnotdeclaredinthisscope /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Infunction'Ttbb::internal::__TBB_CompareAndSwapGeneric(volatilevoid*,T,T)[withlongunsignedintS=4ul,T=unsignedint]': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:215:error:'__TBB_CompareAndSwap4'wasnotdeclaredinthisscope /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Infunction'Ttbb::internal::__TBB_CompareAndSwapGeneric(volatilevoid*,T,T)[withlongunsignedintS=8ul,T=longunsignedint]': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:220:error:'__TBB_CompareAndSwap8'wasnotdeclaredinthisscope /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Infunction'intptr_ttbb::internal::__TBB_MaskedCompareAndSwap(volatileint32_t*,T,T)[withlongunsignedintS=1ul,T=unsignedchar]': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:200:instantiatedfromhere /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:182:error:'__TBB_CompareAndSwap4'wasnotdeclaredinthisscope /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Infunction'intptr_ttbb::internal::__TBB_MaskedCompareAndSwap(volatileint32_t*,T,T)[withlongunsignedintS=2ul,T=shortunsignedint]': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:209:instantiatedfromhere /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:182:error:'__TBB_CompareAndSwap4'wasnotdeclaredinthisscope /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:Infunction'Ttbb::internal::__TBB_CompareAndSwapGeneric(volatilevoid*,T,T)[withlongunsignedintS=8ul,T=longint]': /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:525:instantiatedfromhere /home/parsec-2.1/pkgs/libs/tbblib/inst/amd64-linux.alpha-gcc-tbb/include/tbb/tbb_machine.h:192:error:'__TBB_CompareAndSwapW'wasnotdeclaredinthisscope make:***[blackscholes]Error1 [PARSEC]Error:'envversion=tbb/usr/bin/make'failed. root@gem5-desktop:/home/parsec-2.1# Does this mean thatTBBdoesnotsupportalphaarchitecture? Because TBBrequiressomeatomicprimitiveswhichALPHAdoes nothave,the"minialrequirements...notsatisfied"? If I try towritemyown__TBB_CompareAndSwap4()and __TBB_CompareAndSwap8()forALPHAarchitecture, andthendefiningthetwomacro""_TBB_CompareAndSwap4"and"_TBB_CompareAndSwap8", will it work?

0 Kudos
42 Replies
chenxuhao
Beginner
107 Views
I add option -static-libgcc when compiling TBB, and it works. Thank you very much for your help.
0 Kudos
Reply