Installing on Xilinx UltraScale +

Hi ,I was trying to install numba using “pip3 install numba” i have python 3.6.5 installed .But always failed building wheels for numba ,llvmlite and numpy.

I wanted to ask can i really install numba on Xilinx ZCU104 ,according to support page i should be able to as ARMV8 is supported

My error stack trace is

^~~~~
numba/np/ufunc/tbbpool.cpp: In constructor ‘fix_tls_observer::fix_tls_observer(tbb::interface7::task_arena&, int)’:
numba/np/ufunc/tbbpool.cpp:87:108: error: no matching function for call to ‘tbb::internal::task_scheduler_observer_v3::task_scheduler_observer
_v3(tbb::interface7::task_arena&)’
fix_tls_observer(tbb::task_arena &arena, int mask) : tbb::task_scheduler_observer(arena), mask_val(mask)
^
In file included from /usr/include/tbb/tbb.h:79:0,
from numba/np/ufunc/tbbpool.cpp:15:
/usr/include/tbb/task_scheduler_observer.h:65:5: note: candidate: tbb::internal::task_scheduler_observer_v3::task_scheduler_observer_v3()
task_scheduler_observer_v3() : my_proxy(NULL) { my_busy_count.store(0); }
^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/tbb/task_scheduler_observer.h:65:5: note: candidate expects 0 arguments, 1 provided
/usr/include/tbb/task_scheduler_observer.h:40:7: note: candidate: constexpr tbb::internal::task_scheduler_observer_v3::task_scheduler_observer
_v3(const tbb::internal::task_scheduler_observer_v3&)
class task_scheduler_observer_v3 {
^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/tbb/task_scheduler_observer.h:40:7: note: no known conversion for argument 1 from ‘tbb::interface7::task_arena’ to ‘const tbb::
internal::task_scheduler_observer_v3&’
error: Command “aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.6-3.6.5=
. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I
/usr/include -I/usr/include/python3.6m -c numba/np/ufunc/tbbpool.cpp -o build/temp.linux-aarch64-3.6/numba/np/ufunc/tbbpool.o -std=c++11” failed
with exit status 1


Failed building wheel for numba
Running setup.py clean for numba
Running setup.py bdist_wheel for llvmlite … error

Hi @AditTuf

The error you are getting is from Numba finding tbb header files and attempting to compile in the tbb backend for Numba but it turns out that the tbb in present is too old to use.

You can set the environment variable NUMBA_DISABLE_TBB=1 (docs) at compile time to avoid it compiling the tbb backend, or you could update your tbb version.

Your stack trace should have included output from executing:

#if TBB_INTERFACE_VERSION < 11006
#error "TBB version is too old, 2019 update 5, i.e. TBB_INTERFACE_VERSION >= 11005 required"
#endi

if you choose to update tbb, that’s the minimum version.

Please also note that there are no AArch64/ARMv8 wheels available for Numba or its hard dependency llvmlite. You’ll need to effectively be prepared to build the stack from source (well, sdist), OR, use conda packages Installation — Numba 0.52.0-py3.7-linux-x86_64.egg documentation. If you go down the pip + sdist route then these docs should help.

Hope this helps?