Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

MXNET build not working on armv7 (raspberry pi 4) #18536

Closed
woreom opened this issue Jun 11, 2020 · 8 comments
Closed

MXNET build not working on armv7 (raspberry pi 4) #18536

woreom opened this issue Jun 11, 2020 · 8 comments
Labels

Comments

@woreom
Copy link

woreom commented Jun 11, 2020

Description

Okay this is the following of #18471 , I used the new instruction but I get an error still
the latest would be virtual memory exhausted: Cannot allocate memory ninja: build stopped: subcommand failed. on the last 4 files (mxnet-1.6.0). I also tried other versions from 1.2.1 to 1.6.0 and all the prebuilds that were available (I think it was mxnet-1.5.0) . the all resulted in an error unfortunately I didn't save all the errors but here are some of them.
version 1.6.0

[1/4] Building CXX object CMakeFiles/m...r/src/operator/numpy/np_einsum_op.cc.o
FAILED: CMakeFiles/mxnet.dir/src/operator/numpy/np_einsum_op.cc.o 
/usr/bin/ccache /usr/bin/c++  -DDMLC_CORE_USE_CMAKE -DDMLC_LOG_FATAL_THROW=1 -DDMLC_LOG_STACK_TRACE_SIZE=0 -DDMLC_MODERN_THREAD_LOCAL=0 -DDMLC_STRICT_CXX11 -DDMLC_USE_CXX11 -DDMLC_USE_CXX11=1 -DDMLC_USE_CXX14 -DMSHADOW_INT64_TENSOR_SIZE=0 -DMSHADOW_IN_CXX11 -DMSHADOW_USE_CBLAS=1 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_F16C=0 -DMSHADOW_USE_MKL=0 -DMSHADOW_USE_SSE=0 -DMXNET_USE_BLAS_OPEN=1 -DMXNET_USE_LAPACK=1 -DMXNET_USE_LIBJPEG_TURBO=0 -DMXNET_USE_OPENCV=1 -DMXNET_USE_OPENMP=1 -DMXNET_USE_OPERATOR_TUNING=1 -DMXNET_USE_SIGNAL_HANDLER=1 -DNDEBUG=1 -D__USE_XOPEN2K8 -Dmxnet_EXPORTS -I../include -I../src -I../3rdparty/nvidia_cub -I../3rdparty/tvm/nnvm/include -I../3rdparty/tvm/include -I../3rdparty/dmlc-core/include -I../3rdparty/dlpack/include -I../3rdparty/mshadow -I3rdparty/dmlc-core/include -isystem /usr/include/arm-linux-gnueabihf -isystem /usr/local/include/opencv4 -Wall -Wno-sign-compare -O3 -fopenmp -O3 -DNDEBUG -fPIC   -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-local-typedefs -std=gnu++17 -MD -MT CMakeFiles/mxnet.dir/src/operator/numpy/np_einsum_op.cc.o -MF CMakeFiles/mxnet.dir/src/operator/numpy/np_einsum_op.cc.o.d -o CMakeFiles/mxnet.dir/src/operator/numpy/np_einsum_op.cc.o -c ../src/operator/numpy/np_einsum_op.cc
In file included from /usr/include/c++/8/vector:69,
                 from ../include/dmlc/registry.h:11,
                 from ../include/mxnet/operator_util.h:37,
                 from ../src/operator/numpy/./np_einsum_op-inl.h:46,
                 from ../src/operator/numpy/np_einsum_op.cc:58:
/usr/include/c++/8/bits/vector.tcc: In member function ‘std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::_M_erase(std::vector<_Tp, _Alloc>::iterator) [with _Tp = mxnet::op::Alternative; _Alloc = std::allocator<mxnet::op::Alternative>]’:
/usr/include/c++/8/bits/vector.tcc:159:5: note: parameter passing for argument of type ‘std::vector<mxnet::op::Alternative>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<mxnet::op::Alternative*, std::vector<mxnet::op::Alternative> >’} changed in GCC 7.1
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const mxnet::op::Alternative&}; _Tp = mxnet::op::Alternative; _Alloc = std::allocator<mxnet::op::Alternative>]’:
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vector<mxnet::op::Alternative>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<mxnet::op::Alternative*, std::vector<mxnet::op::Alternative> >’} changed in GCC 7.1
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:64,
                 from ../include/dmlc/registry.h:11,
                 from ../include/mxnet/operator_util.h:37,
                 from ../src/operator/numpy/./np_einsum_op-inl.h:46,
                 from ../src/operator/numpy/np_einsum_op.cc:58:
/usr/include/c++/8/bits/stl_vector.h: In function ‘void mxnet::op::_update_other_results(std::vector<mxnet::op::Alternative>*, const mxnet::op::Alternative&)’:
/usr/include/c++/8/bits/stl_vector.h:1318:58: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<mxnet::op::Alternative*, std::vector<mxnet::op::Alternative> >’ changed in GCC 7.1
       { return _M_erase(begin() + (__position - cbegin())); }
                                                          ^
/usr/include/c++/8/bits/stl_vector.h: In function ‘std::vector<std::vector<int> > mxnet::op::_greedy_path(const SetVector*, const std::bitset<128>&, const dim_t*, size_t)’:
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<mxnet::op::Alternative*, std::vector<mxnet::op::Alternative> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<mxnet::op::Alternative*, std::vector<mxnet::op::Alternative> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<mxnet::op::Alternative*, std::vector<mxnet::op::Alternative> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:69,
                 from ../include/dmlc/registry.h:11,
                 from ../include/mxnet/operator_util.h:37,
                 from ../src/operator/numpy/./np_einsum_op-inl.h:46,
                 from ../src/operator/numpy/np_einsum_op.cc:58:
/usr/include/c++/8/bits/vector.tcc: In member function ‘std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::_M_erase(std::vector<_Tp, _Alloc>::iterator) [with _Tp = mxnet::TBlob; _Alloc = std::allocator<mxnet::TBlob>]’:
/usr/include/c++/8/bits/vector.tcc:159:5: note: parameter passing for argument of type ‘std::vector<mxnet::TBlob>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<mxnet::TBlob*, std::vector<mxnet::TBlob> >’} changed in GCC 7.1
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {mxnet::TBlob}; _Tp = mxnet::TBlob; _Alloc = std::allocator<mxnet::TBlob>]’:
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vector<mxnet::TBlob>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<mxnet::TBlob*, std::vector<mxnet::TBlob> >’} changed in GCC 7.1
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/vector.tcc: In member function ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {mxnet::TBlob}; _Tp = mxnet::TBlob; _Alloc = std::allocator<mxnet::TBlob>]’:
/usr/include/c++/8/bits/vector.tcc:109:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<mxnet::TBlob*, std::vector<mxnet::TBlob> >’ changed in GCC 7.1
    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
    ^~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const mxnet::TBlob&}; _Tp = mxnet::TBlob; _Alloc = std::allocator<mxnet::TBlob>]’:
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vector<mxnet::TBlob>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<mxnet::TBlob*, std::vector<mxnet::TBlob> >’} changed in GCC 7.1
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:64,
                 from ../include/dmlc/registry.h:11,
                 from ../include/mxnet/operator_util.h:37,
                 from ../src/operator/numpy/./np_einsum_op-inl.h:46,
                 from ../src/operator/numpy/np_einsum_op.cc:58:
/usr/include/c++/8/bits/stl_vector.h: In member function ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = mxnet::TBlob; _Alloc = std::allocator<mxnet::TBlob>]’:
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<mxnet::TBlob*, std::vector<mxnet::TBlob> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_vector.h: In function ‘std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = mxnet::TBlob; _Alloc = std::allocator<mxnet::TBlob>]’:
/usr/include/c++/8/bits/stl_vector.h:515:7: note: parameter passing for argument of type ‘std::initializer_list<mxnet::TBlob>’ changed in GCC 7.1
       vector(initializer_list<value_type> __l,
       ^~~~~~
virtual memory exhausted: Cannot allocate memory
ninja: build stopped: subcommand failed.

version 1.5.0

[1/3] Linking CXX executable im2rec
FAILED: im2rec 
: && /usr/bin/c++  -Wall -Wno-unknown-pragmas -Wno-sign-compare -O3 -std=c++11 -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -fopenmp -std=c++0x -O3 -DNDEBUG  -rdynamic CMakeFiles/im2rec.dir/tools/im2rec.cc.o  -o im2rec  -Wl,-rpath,/usr/local/lib -Wl,--whole-archive libmxnet.a -Wl,--no-whole-archive -lopenblas -lrt -ljemalloc -llapack -ljemalloc /usr/local/lib/libopencv_highgui.so.4.0.0 3rdparty/dmlc-core/libdmlc.a -llapack /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 -lrt && :
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `mxnet::on_exit_api()':
c_api_profile.cc:(.text+0xa3c): undefined reference to `__atomic_load_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xa78): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xbb8): undefined reference to `__atomic_load_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `mxnet::on_enter_api(char const*) [clone .part.617]':
c_api_profile.cc:(.text+0xed8): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xf20): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `MXProfileSetCounter':
c_api_profile.cc:(.text+0x265c): undefined reference to `__atomic_store_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `MXProfileAdjustCounter':
c_api_profile.cc:(.text+0x2828): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: c_api_profile.cc:(.text+0x2880): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: libmxnet.a(imperative.cc.o): in function `mxnet::Imperative::MarkVariables(std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&)':
imperative.cc:(.text+0xa38): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(imperative.cc.o): in function `mxnet::Imperative::RecordOp(nnvm::NodeAttrs&&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, mxnet::OpStatePtr const&, std::vector<bool, std::allocator<bool> >*, std::vector<bool, std::allocator<bool> >*)':
imperative.cc:(.text+0x37ac): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: imperative.cc:(.text+0x3a10): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::StorageImpl::Alloc(mxnet::Storage::Handle*)':
storage.cc:(.text+0x3460): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::profiler::ProfileCounter::operator-=(long long)':
storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x20): undefined reference to `__atomic_load_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x5c): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0xac): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x2dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::storage::DeviceStorageProfiler::OnFree(mxnet::Storage::Handle const&)':
storage.cc:(.text._ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE[_ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE]+0x17c): undefined reference to `__atomic_load_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE[_ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE]+0x240): undefined reference to `__atomic_store_8'
collect2: error: ld returned 1 exit status
[2/3] Linking CXX executable example/i...edict-cpp/image-classification-predict
FAILED: example/image-classification/predict-cpp/image-classification-predict 
: && /usr/bin/c++  -Wall -Wno-unknown-pragmas -Wno-sign-compare -O3 -std=c++11 -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -fopenmp -std=c++0x -O3 -DNDEBUG  -rdynamic example/image-classification/predict-cpp/CMakeFiles/image-classification-predict.dir/image-classification-predict.cc.o  -o example/image-classification/predict-cpp/image-classification-predict  -Wl,-rpath,/usr/local/lib -Wl,--whole-archive libmxnet.a -Wl,--no-whole-archive 3rdparty/dmlc-core/libdmlc.a -lopenblas -lrt -ljemalloc /usr/local/lib/libopencv_highgui.so.4.0.0 -llapack -ljemalloc -lrt -llapack /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 && :
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `mxnet::on_exit_api()':
c_api_profile.cc:(.text+0xa3c): undefined reference to `__atomic_load_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xa78): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xbb8): undefined reference to `__atomic_load_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `mxnet::on_enter_api(char const*) [clone .part.617]':
c_api_profile.cc:(.text+0xed8): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xf20): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `MXProfileSetCounter':
c_api_profile.cc:(.text+0x265c): undefined reference to `__atomic_store_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `MXProfileAdjustCounter':
c_api_profile.cc:(.text+0x2828): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: c_api_profile.cc:(.text+0x2880): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: libmxnet.a(imperative.cc.o): in function `mxnet::Imperative::MarkVariables(std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&)':
imperative.cc:(.text+0xa38): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(imperative.cc.o): in function `mxnet::Imperative::RecordOp(nnvm::NodeAttrs&&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, mxnet::OpStatePtr const&, std::vector<bool, std::allocator<bool> >*, std::vector<bool, std::allocator<bool> >*)':
imperative.cc:(.text+0x37ac): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: imperative.cc:(.text+0x3a10): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::StorageImpl::Alloc(mxnet::Storage::Handle*)':
storage.cc:(.text+0x3460): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::profiler::ProfileCounter::operator-=(long long)':
storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x20): undefined reference to `__atomic_load_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x5c): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0xac): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x2dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::storage::DeviceStorageProfiler::OnFree(mxnet::Storage::Handle const&)':
storage.cc:(.text._ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE[_ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE]+0x17c): undefined reference to `__atomic_load_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE[_ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE]+0x240): undefined reference to `__atomic_store_8'
collect2: error: ld returned 1 exit status
[3/3] Linking CXX executable tests/mxnet_unit_tests
FAILED: tests/mxnet_unit_tests 
: && /usr/bin/c++  -Wall -Wno-unknown-pragmas -Wno-sign-compare -O3 -std=c++11 -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -fopenmp -std=c++0x -O3 -DNDEBUG  -rdynamic tests/CMakeFiles/mxnet_unit_tests.dir/cpp/engine/engine_shutdown_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/engine/threaded_engine_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/kvstore/gpu_topology_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/misc/base.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/misc/libinfo_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/batchnorm_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/coreop_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/dropout_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/fully_conn_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/krprod_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/mkldnn_operator_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/mkldnn_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/runner/core_op_runner_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/slice_channel_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/storage/storage_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/test_main.cc.o  -o tests/mxnet_unit_tests  -Wl,-rpath,/usr/local/lib lib/libgtest.a -Wl,--whole-archive libmxnet.a -Wl,--no-whole-archive 3rdparty/dmlc-core/libdmlc.a -lopenblas -lrt -ljemalloc /usr/local/lib/libopencv_highgui.so.4.0.0 -llapack -ljemalloc -lrt -llapack /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 && :
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `dmlc::LogCheckError dmlc::LogCheck_NE<std::atomic<unsigned long long>, unsigned int>(std::atomic<unsigned long long> const&, unsigned int const&)':
activation_perf.cc:(.text._ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x1c): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x74): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `dmlc::LogCheckError dmlc::LogCheck_EQ<std::atomic<unsigned long long>, unsigned int>(std::atomic<unsigned long long> const&, unsigned int const&)':
activation_perf.cc:(.text._ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x1c): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x74): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::Info::Info(mxnet::test::perf::TimingInstrument::Info const&)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument4InfoC2ERKS3_[_ZN5mxnet4test4perf16TimingInstrument4InfoC5ERKS3_]+0x34): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o:activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument4InfoC2ERKS3_[_ZN5mxnet4test4perf16TimingInstrument4InfoC5ERKS3_]+0x50): more undefined references to `__atomic_load_8' follow
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::stopTiming(int, unsigned int)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x140): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x37c): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x394): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x3a8): undefined reference to `__atomic_store_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x3bc): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::startTiming(int, char const*)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc[_ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc]+0x88): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc[_ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc]+0x174): undefined reference to `__atomic_store_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::reset()':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5resetEv[_ZN5mxnet4test4perf16TimingInstrument5resetEv]+0xec): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5resetEv[_ZN5mxnet4test4perf16TimingInstrument5resetEv]+0x240): undefined reference to `__atomic_store_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5resetEv[_ZN5mxnet4test4perf16TimingInstrument5resetEv]+0x274): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `void mxnet::test::perf::TimingInstrument::print<std::ostream>(std::ostream*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x280): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x2dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x304): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x33c): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o:activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x454): more undefined references to `__atomic_load_8' follow
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::OperatorRunner<mxnet::test::op::CoreOpProp, mxnet::test::op::CoreOpExecutor<float, float> >::TimingTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, int, unsigned int, std::vector<mxnet::TShape, std::allocator<mxnet::TShape> > const&, bool)':
activation_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS0_2op10CoreOpPropENS2_14CoreOpExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISC_SC_ESaISH_EEijRKSF_INS_6TShapeESaISM_EEb[_ZN5mxnet4test14OperatorRunnerINS0_2op10CoreOpPropENS2_14CoreOpExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISC_SC_ESaISH_EEijRKSF_INS_6TShapeESaISM_EEb]+0x704): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS0_2op10CoreOpPropENS2_14CoreOpExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISC_SC_ESaISH_EEijRKSF_INS_6TShapeESaISM_EEb[_ZN5mxnet4test14OperatorRunnerINS0_2op10CoreOpPropENS2_14CoreOpExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISC_SC_ESaISH_EEijRKSF_INS_6TShapeESaISM_EEb]+0x710): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS0_2op10CoreOpPropENS2_14CoreOpExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISC_SC_ESaISH_EEijRKSF_INS_6TShapeESaISM_EEb[_ZN5mxnet4test14OperatorRunnerINS0_2op10CoreOpPropENS2_14CoreOpExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISC_SC_ESaISH_EEijRKSF_INS_6TShapeESaISM_EEb]+0x724): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/slice_channel_perf.cc.o: in function `mxnet::test::OperatorRunner<mxnet::op::SliceChannelProp, mxnet::test::op::LegacyOperatorExecutor<float, float> >::TimingTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, int, unsigned int, std::vector<mxnet::TShape, std::allocator<mxnet::TShape> > const&, bool)':
slice_channel_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb[_ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb]+0x91c): undefined reference to `__atomic_load_8'
/usr/bin/ld: slice_channel_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb[_ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb]+0x950): undefined reference to `__atomic_load_8'
/usr/bin/ld: slice_channel_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb[_ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb]+0xa68): undefined reference to `__atomic_load_8'
/usr/bin/ld: slice_channel_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb[_ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb]+0xa80): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: slice_channel_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb[_ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb]+0xa8c): undefined reference to `__atomic_load_8'
/usr/bin/ld: slice_channel_perf.cc:(.text._ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb[_ZN5mxnet4test14OperatorRunnerINS_2op16SliceChannelPropENS0_2op22LegacyOperatorExecutorIffEEE10TimingTestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbbRKSt6vectorISt4pairISD_SD_ESaISI_EEijRKSG_INS_6TShapeESaISN_EEb]+0xaa0): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/batchnorm_test.cc.o: in function `mxnet::test::perf::TimingInstrument::operator+=(mxnet::test::perf::TimingInstrument const&)':
batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0xcc): undefined reference to `__atomic_load_8'
/usr/bin/ld: batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0xe4): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0xf0): undefined reference to `__atomic_load_8'
/usr/bin/ld: batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0x104): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o: in function `mxnet::test::tune::TuningTester<float>::CalculateModeSort(mxnet::test::op::TimingDirection, bool) const':
operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1c8): undefined reference to `__atomic_load_8'
/usr/bin/ld: operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o: in function `mxnet::test::tune::TuningTester<double>::CalculateModeSort(mxnet::test::op::TimingDirection, bool) const':
operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIdE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIdE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1c8): undefined reference to `__atomic_load_8'
/usr/bin/ld: operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIdE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIdE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o: in function `mxnet::test::tune::TuningTester<mshadow::half::half_t>::CalculateModeSort(mxnet::test::op::TimingDirection, bool) const':
operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1c8): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o:operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1dc): more undefined references to `__atomic_load_8' follow
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `mxnet::on_exit_api()':
c_api_profile.cc:(.text+0xa78): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xbb8): undefined reference to `__atomic_load_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `mxnet::on_enter_api(char const*) [clone .part.617]':
c_api_profile.cc:(.text+0xed8): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: c_api_profile.cc:(.text+0xf20): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `MXProfileSetCounter':
c_api_profile.cc:(.text+0x265c): undefined reference to `__atomic_store_8'
/usr/bin/ld: libmxnet.a(c_api_profile.cc.o): in function `MXProfileAdjustCounter':
c_api_profile.cc:(.text+0x2828): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: c_api_profile.cc:(.text+0x2880): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: libmxnet.a(imperative.cc.o): in function `mxnet::Imperative::MarkVariables(std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&)':
imperative.cc:(.text+0xa38): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(imperative.cc.o): in function `mxnet::Imperative::RecordOp(nnvm::NodeAttrs&&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, std::allocator<mxnet::NDArray*> > const&, mxnet::OpStatePtr const&, std::vector<bool, std::allocator<bool> >*, std::vector<bool, std::allocator<bool> >*)':
imperative.cc:(.text+0x37ac): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: imperative.cc:(.text+0x3a10): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::StorageImpl::Alloc(mxnet::Storage::Handle*)':
storage.cc:(.text+0x3460): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::profiler::ProfileCounter::operator-=(long long)':
storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x20): undefined reference to `__atomic_load_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x5c): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0xac): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet8profiler14ProfileCountermIEx[_ZN5mxnet8profiler14ProfileCountermIEx]+0x2dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: libmxnet.a(storage.cc.o): in function `mxnet::storage::DeviceStorageProfiler::OnFree(mxnet::Storage::Handle const&)':
storage.cc:(.text._ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE[_ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE]+0x17c): undefined reference to `__atomic_load_8'
/usr/bin/ld: storage.cc:(.text._ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE[_ZN5mxnet7storage21DeviceStorageProfiler6OnFreeERKNS_7Storage6HandleE]+0x240): undefined reference to `__atomic_store_8'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

version 1.4.1

ninja -j4
[0/4] Building CXX object CMakeFiles/m...r/src/operator/tensor/indexing_op[1/4] Building CXX object CMakeFile...rc/operator/tensor/indexing_op.cc.o
FAILED: CMakeFiles/mxnet.dir/src/operator/tensor/indexing_op.cc.o
/usr/bin/ccache /usr/bin/c++  -DDMLC_CORE_USE_CMAKE -DDMLC_LOG_FATAL_THROW=1 -DDMLC_LOG_STACK_TRACE_SIZE=0 -DDMLC_MODERN_THREAD_LOCAL=0 -DDMLC_STRICT_CXX11 -DDMLC_USE_CXX11 -DDMLC_USE_CXX11=1 -DDMLC_USE_CXX14 -DMSHADOW_INT64_TENSOR_SIZE=0 -DMSHADOW_IN_CXX11 -DMSHADOW_USE_CBLAS=1 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_MKL=0 -DMSHADOW_USE_SSE=0 -DMXNET_USE_BLAS_OPEN=1 -DMXNET_USE_LAPACK=1 -DMXNET_USE_LIBJPEG_TURBO=0 -DMXNET_USE_OPENCV=1 -DMXNET_USE_OPENMP=1 -DMXNET_USE_OPERATOR_TUNING=1 -DMXNET_USE_SIGNAL_HANDLER=1 -DNDEBUG=1 -D__USE_XOPEN2K8 -Dmxnet_EXPORTS -I../include -I../src -I../3rdparty/nvidia_cub -I../3rdparty/tvm/nnvm/include -I../3rdparty/tvm/include -I../3rdparty/dmlc-core/include -I../3rdparty/dlpack/include -I../3rdparty/mshadow -I3rdparty/dmlc-core/include -isystem /usr/include/opencv4 -Wall -Wno-sign-compare -O3  -O3 -DNDEBUG -fPIC   -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-local-typedefs -mf16c -std=gnu++17 -MD -MT CMakeFiles/mxnet.dir/src/operator/tensor/indexing_op.cc.o -MF CMakeFiles/mxnet.dir/src/operator/tensor/indexing_op.cc.o.d -o CMakeFiles/mxnet.dir/src/operator/tensor/indexing_op.cc.o -c ../src/operator/tensor/indexing_op.cc
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
ninja: build stopped: subcommand failed.

version 1.2.1

Makefile:166: "USE_LAPACK disabled because libraries were not found"
Makefile:264: WARNING: Significant performance increases can be achieved by installing and enabling gperftools or jemalloc development packages
cd /mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/dmlc-core; make libdmlc.a USE_SSE=0 config=/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/make/config.mk; cd /mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating
make[1]: Entering directory '/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/dmlc-core'
make[1]: 'libdmlc.a' is up to date.
make[1]: Leaving directory '/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/dmlc-core'
g++ -DMSHADOW_FORCE_STREAM -Wall -Wsign-compare -O3 -DNDEBUG=1 -I/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/mshadow/ -I/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/dmlc-core/include -fPIC -I/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/nnvm/include -I/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/dlpack/include -I/mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/nnvm/tvm/include -Iinclude -funroll-loops -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-local-typedefs -DMSHADOW_USE_SSE=0 -DMSHADOW_USE_F16C=0 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_CBLAS=1 -DMSHADOW_USE_MKL=0 -DMSHADOW_RABIT_PS=0 -DMSHADOW_DIST_PS=0 -DMSHADOW_USE_PASCAL=0 -DMXNET_USE_OPENCV=1 -I/usr/include/opencv -fopenmp -DMXNET_USE_OPERATOR_TUNING=1  -DMXNET_USE_NCCL=0 -DMXNET_USE_LIBJPEG_TURBO=0 -std=c++11  -o bin/im2rec tools/im2rec.cc build/src/operator/nn/mkldnn/mkldnn_convolution.o build/src/operator/nn/mkldnn/mkldnn_concat.o build/src/operator/nn/mkldnn/mkldnn_base.o build/src/operator/nn/mkldnn/mkldnn_act.o build/src/operator/nn/mkldnn/mkldnn_softmax.o build/src/operator/nn/mkldnn/mkldnn_deconvolution.o build/src/operator/nn/mkldnn/mkldnn_copy.o build/src/operator/nn/mkldnn/mkldnn_fully_connected.o build/src/operator/nn/mkldnn/mkldnn_pooling.o build/src/operator/nn/mkldnn/mkldnn_sum.o build/src/operator/nn/cudnn/cudnn_algoreg.o build/src/operator/nn/cudnn/cudnn_batch_norm.o build/src/operator/tensor/elemwise_binary_broadcast_op_basic.o build/src/operator/tensor/elemwise_binary_op_logic.o build/src/operator/tensor/square_sum.o build/src/operator/tensor/matrix_op.o build/src/operator/tensor/init_op.o build/src/operator/tensor/elemwise_binary_broadcast_op_extended.o build/src/operator/tensor/broadcast_reduce_op_index.o build/src/operator/tensor/dot.o build/src/operator/tensor/elemwise_scatter_op.o build/src/operator/tensor/elemwise_unary_op_basic.o build/src/operator/tensor/broadcast_reduce_op_value.o build/src/operator/tensor/elemwise_binary_op.o build/src/operator/tensor/control_flow_op.o build/src/operator/tensor/elemwise_binary_op_basic.o build/src/operator/tensor/elemwise_binary_scalar_op_basic.o build/src/operator/tensor/elemwise_binary_scalar_op_extended.o build/src/operator/tensor/indexing_op.o build/src/operator/tensor/elemwise_binary_broadcast_op_logic.o build/src/operator/tensor/la_op.o build/src/operator/tensor/sparse_retain.o build/src/operator/tensor/elemwise_binary_op_extended.o build/src/operator/tensor/ordering_op.o build/src/operator/tensor/elemwise_sum.o build/src/operator/tensor/cast_storage.o build/src/operator/tensor/elemwise_binary_scalar_op_logic.o build/src/operator/tensor/elemwise_unary_op_trig.o build/src/operator/contrib/multibox_target.o build/src/operator/contrib/count_sketch.o build/src/operator/contrib/krprod.o build/src/operator/contrib/deformable_psroi_pooling.o build/src/operator/contrib/ctc_loss.o build/src/operator/contrib/quadratic_op.o build/src/operator/contrib/multi_proposal.o build/src/operator/contrib/bounding_box.o build/src/operator/contrib/multibox_prior.o build/src/operator/contrib/bilinear_resize.o build/src/operator/contrib/fft.o build/src/operator/contrib/proposal.o build/src/operator/contrib/psroi_pooling.o build/src/operator/contrib/deformable_convolution.o build/src/operator/contrib/ifft.o build/src/operator/contrib/multibox_detection.o build/src/operator/contrib/adaptive_avg_pooling.o build/src/operator/custom/native_op.o build/src/operator/custom/ndarray_op.o build/src/operator/custom/custom.o build/src/operator/image/image_random.o build/src/operator/nnpack/nnpack_util.o build/src/operator/random/sample_multinomial_op.o build/src/operator/random/multisample_op.o build/src/operator/random/sample_op.o build/src/operator/random/shuffle_op.o build/src/operator/nn/softmax.o build/src/operator/nn/pooling.o build/src/operator/nn/deconvolution.o build/src/operator/nn/activation.o build/src/operator/nn/upsampling.o build/src/operator/nn/fully_connected.o build/src/operator/nn/convolution.o build/src/operator/nn/lrn.o build/src/operator/nn/layer_norm.o build/src/operator/nn/concat.o build/src/operator/nn/softmax_activation.o build/src/operator/nn/batch_norm.o build/src/operator/nn/dropout.o build/src/operator/quantization/requantize.o build/src/operator/quantization/dequantize.o build/src/operator/quantization/quantize_graph_pass.o build/src/operator/quantization/quantized_flatten.o build/src/operator/quantization/quantized_conv.o build/src/operator/quantization/quantized_fully_connected.o build/src/operator/quantization/quantized_pooling.o build/src/operator/quantization/quantize.o build/src/io/io.o build/src/io/image_aug_default.o build/src/io/iter_image_det_recordio.o build/src/io/image_io.o build/src/io/image_det_aug_default.o build/src/io/iter_csv.o build/src/io/iter_image_recordio.o build/src/io/iter_mnist.o build/src/io/iter_image_recordio_2.o build/src/io/iter_libsvm.o build/src/common/utils.o build/src/common/rtc.o build/src/nnvm/legacy_op_util.o build/src/nnvm/tvm_bridge.o build/src/nnvm/legacy_json_util.o build/src/profiler/profiler.o build/src/profiler/aggregate_stats.o build/src/profiler/vtune.o build/src/imperative/cached_op.o build/src/imperative/imperative.o build/src/ndarray/ndarray_function.o build/src/ndarray/ndarray.o build/src/operator/sequence_last.o build/src/operator/svm_output.o build/src/operator/instance_norm.o build/src/operator/grid_generator.o build/src/operator/swapaxis.o build/src/operator/pooling_v1.o build/src/operator/loss_binary_op.o build/src/operator/rnn.o build/src/operator/convolution_v1.o build/src/operator/crop.o build/src/operator/sequence_reverse.o build/src/operator/pad.o build/src/operator/bilinear_sampler.o build/src/operator/softmax_output.o build/src/operator/operator_tune.o build/src/operator/roi_pooling.o build/src/operator/slice_channel.o build/src/operator/batch_norm_v1.o build/src/operator/cross_device_copy.o build/src/operator/l2_normalization.o build/src/operator/regression_output.o build/src/operator/make_loss.o build/src/operator/identity_attach_KL_sparse_reg.o build/src/operator/operator.o build/src/operator/optimizer_op.o build/src/operator/correlation.o build/src/operator/operator_util.o build/src/operator/spatial_transformer.o build/src/operator/leaky_relu.o build/src/operator/sequence_mask.o build/src/engine/naive_engine.o build/src/engine/openmp.o build/src/engine/threaded_engine_pooled.o build/src/engine/threaded_engine.o build/src/engine/engine.o build/src/engine/threaded_engine_perdevice.o build/src/storage/storage.o build/src/c_api/c_api_executor.o build/src/c_api/c_api_symbolic.o build/src/c_api/c_api_profile.o build/src/c_api/c_api_ndarray.o build/src/c_api/c_predict_api.o build/src/c_api/c_api_function.o build/src/c_api/c_api.o build/src/c_api/c_api_error.o build/src/executor/inplace_addto_detect_pass.o build/src/executor/graph_executor.o build/src/executor/infer_graph_attr_pass.o build/src/executor/attach_op_execs_pass.o build/src/executor/attach_op_resource_pass.o build/src/kvstore/gradient_compression.o build/src/kvstore/kvstore_utils.o build/src/kvstore/kvstore.o build/src/resource.o build/src/initialize.o /mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/dmlc-core/libdmlc.a /mnt/USB/.mxnet/mxnet-1.2.1/apache-mxnet-src-1.2.1-incubating/3rdparty/nnvm/lib/libnnvm.a -pthread -lm -lcblas -fopenmp -lrt -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_datasets -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_video -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_rgbd -lopencv_viz -lopencv_surface_matching -lopencv_text -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core 
/usr/bin/ld: build/src/storage/storage.o: undefined reference to symbol '__atomic_fetch_sub_8@@LIBATOMIC_1.0'
/usr/bin/ld: //usr/lib/arm-linux-gnueabihf/libatomic.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:496: bin/im2rec] Error 1

I need to finish my project and it's already passed its deadline. I kinda really need mxnet to finish it, I would appreciate it if you helped me with instructions on how to build, cross-compile or even make a prebuild that works on armv71.
also, you can find more information on #18471

@woreom woreom added the Bug label Jun 11, 2020
@leezu
Copy link
Contributor

leezu commented Jun 11, 2020

Hi @woreom, sorry for the issues you face. For the memory issues, you need to setup swap. It's mentioned in the guide you're following.

But in general it's better to just cross compile on a powerful machine. That's tested by our CI server and I added instructions to the website recently. Did you try it?

@woreom
Copy link
Author

woreom commented Jun 15, 2020

@leezu I have tried it but the first whl I made did not work, I'm trying to make it again.
also, after the result of #18501, I used ninja to make mxnet although it resulted in the error

[1/2] Linking CXX executable im2rec
FAILED: im2rec 
: && /usr/bin/g++  -Wall -Wno-sign-compare -O3 -fopenmp -O3 -DNDEBUG   CMakeFiles/im2rec.dir/tools/im2rec.cc.o  -o im2rec  -Wl,-rpath,/mnt/USB/.mxnet/mxnet/build:/usr/local/lib /usr/lib/arm-linux-gnueabihf/libopenblas.so /usr/lib/arm-linux-gnueabihf/librt.so -llapack libmxnet.so 3rdparty/dmlc-core/libdmlc.a /usr/local/lib/libopencv_highgui.so.4.0.0 /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 /usr/lib/gcc/arm-linux-gnueabihf/7/libgomp.so /usr/lib/arm-linux-gnueabihf/libpthread.so -lrt -ldl /usr/lib/arm-linux-gnueabihf/libopenblas.so /usr/lib/arm-linux-gnueabihf/librt.so -llapack && :
/usr/bin/ld: libmxnet.so: undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: libmxnet.so: undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: libmxnet.so: undefined reference to `__atomic_store_8'
/usr/bin/ld: libmxnet.so: undefined reference to `__atomic_load_8'
collect2: error: ld returned 1 exit status
[2/2] Linking CXX executable tests/mxnet_unit_tests
FAILED: tests/mxnet_unit_tests 
: && /usr/bin/g++  -Wall -Wno-sign-compare -O3 -fopenmp -O3 -DNDEBUG   tests/CMakeFiles/mxnet_unit_tests.dir/cpp/engine/engine_shutdown_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/engine/omp_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/engine/thread_local_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/engine/threaded_engine_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/kvstore/gpu_topology_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/misc/base.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/misc/libinfo_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/batchnorm_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/coreop_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/dropout_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/fully_conn_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/krprod_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/mkldnn_operator_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/mkldnn_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/runner/core_op_runner_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/slice_channel_perf.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/storage/storage_test.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/test_main.cc.o tests/CMakeFiles/mxnet_unit_tests.dir/cpp/thread_safety/thread_safety_test.cc.o  -o tests/mxnet_unit_tests  -Wl,-rpath,/mnt/USB/.mxnet/mxnet/build:/usr/local/lib lib/libgtest.a 3rdparty/dmlc-core/libdmlc.a /usr/lib/arm-linux-gnueabihf/libopenblas.so /usr/lib/arm-linux-gnueabihf/librt.so -llapack libmxnet.so 3rdparty/dmlc-core/libdmlc.a /usr/lib/gcc/arm-linux-gnueabihf/7/libgomp.so /usr/lib/arm-linux-gnueabihf/libpthread.so -lrt /usr/local/lib/libopencv_highgui.so.4.0.0 /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 -ldl /usr/lib/arm-linux-gnueabihf/libopenblas.so /usr/lib/arm-linux-gnueabihf/librt.so -llapack && :
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/runner/core_op_runner_test.cc.o: in function `mxnet::test::OperatorRunner<mxnet::test::op::CoreOpProp, mxnet::test::op::CoreOpExecutor<float, float> >::TimingTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, int, unsigned int, std::vector<mxnet::TShape, std::allocator<mxnet::TShape> > const&, bool) [clone .constprop.1100]':
core_op_runner_test.cc:(.text+0x487c): undefined reference to `__atomic_load_8'
/usr/bin/ld: core_op_runner_test.cc:(.text+0x48bc): undefined reference to `__atomic_load_8'
/usr/bin/ld: core_op_runner_test.cc:(.text+0x4a20): undefined reference to `__atomic_load_8'
/usr/bin/ld: core_op_runner_test.cc:(.text+0x4a38): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: core_op_runner_test.cc:(.text+0x4a44): undefined reference to `__atomic_load_8'
/usr/bin/ld: core_op_runner_test.cc:(.text+0x4a58): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `ACTIVATION_PERF_TimingCPU_Test::TestBody()':
activation_perf.cc:(.text+0x1bcc): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text+0x1c08): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text+0x1d70): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text+0x1d88): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: activation_perf.cc:(.text+0x1d94): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text+0x1da8): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `dmlc::LogCheckError dmlc::LogCheck_NE<std::atomic<unsigned long long>, unsigned int>(std::atomic<unsigned long long> const&, unsigned int const&)':
activation_perf.cc:(.text._ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x1c): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_NEISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x84): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `dmlc::LogCheckError dmlc::LogCheck_EQ<std::atomic<unsigned long long>, unsigned int>(std::atomic<unsigned long long> const&, unsigned int const&)':
activation_perf.cc:(.text._ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x1c): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_[_ZN4dmlc11LogCheck_EQISt6atomicIyEjEENS_13LogCheckErrorERKT_RKT0_]+0x74): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::Info::Info(mxnet::test::perf::TimingInstrument::Info const&)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument4InfoC2ERKS3_[_ZN5mxnet4test4perf16TimingInstrument4InfoC5ERKS3_]+0x34): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o:activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument4InfoC2ERKS3_[_ZN5mxnet4test4perf16TimingInstrument4InfoC5ERKS3_]+0x50): more undefined references to `__atomic_load_8' follow
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::stopTiming(int, unsigned int)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x1a4): undefined reference to `__atomic_fetch_sub_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x450): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x468): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x47c): undefined reference to `__atomic_store_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument10stopTimingEij[_ZN5mxnet4test4perf16TimingInstrument10stopTimingEij]+0x490): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::startTiming(int, char const*)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc[_ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc]+0xc0): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc[_ZN5mxnet4test4perf16TimingInstrument11startTimingEiPKc]+0x1a8): undefined reference to `__atomic_store_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `mxnet::test::perf::TimingInstrument::reset()':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5resetEv[_ZN5mxnet4test4perf16TimingInstrument5resetEv]+0xe0): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5resetEv[_ZN5mxnet4test4perf16TimingInstrument5resetEv]+0x108): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5resetEv[_ZN5mxnet4test4perf16TimingInstrument5resetEv]+0x2b8): undefined reference to `__atomic_store_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o: in function `void mxnet::test::perf::TimingInstrument::print<std::ostream>(std::ostream*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x1a0): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x1b8): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x1e8): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x2b4): undefined reference to `__atomic_load_8'
/usr/bin/ld: activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x334): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/activation_perf.cc.o:activation_perf.cc:(.text._ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb[_ZN5mxnet4test4perf16TimingInstrument5printISoEEvPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb]+0x368): more undefined references to `__atomic_load_8' follow
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/batchnorm_test.cc.o: in function `mxnet::test::perf::TimingInstrument::operator+=(mxnet::test::perf::TimingInstrument const&)':
batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0x268): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0x274): undefined reference to `__atomic_load_8'
/usr/bin/ld: batchnorm_test.cc:(.text._ZN5mxnet4test4perf16TimingInstrumentpLERKS2_[_ZN5mxnet4test4perf16TimingInstrumentpLERKS2_]+0x288): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/coreop_perf.cc.o: in function `void RunCoreOpTimingTest<float>(bool, std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, char const*, char const*) [clone .constprop.1096]':
coreop_perf.cc:(.text+0x2b84): undefined reference to `__atomic_load_8'
/usr/bin/ld: coreop_perf.cc:(.text+0x2bc0): undefined reference to `__atomic_load_8'
/usr/bin/ld: coreop_perf.cc:(.text+0x2d28): undefined reference to `__atomic_load_8'
/usr/bin/ld: coreop_perf.cc:(.text+0x2d40): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: coreop_perf.cc:(.text+0x2d4c): undefined reference to `__atomic_load_8'
/usr/bin/ld: coreop_perf.cc:(.text+0x2d60): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/dropout_perf.cc.o: in function `DROPOUT_PERF_TimingCPU_Test::TestBody()':
dropout_perf.cc:(.text+0x1fa4): undefined reference to `__atomic_load_8'
/usr/bin/ld: dropout_perf.cc:(.text+0x1fe0): undefined reference to `__atomic_load_8'
/usr/bin/ld: dropout_perf.cc:(.text+0x2148): undefined reference to `__atomic_load_8'
/usr/bin/ld: dropout_perf.cc:(.text+0x2160): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: dropout_perf.cc:(.text+0x216c): undefined reference to `__atomic_load_8'
/usr/bin/ld: dropout_perf.cc:(.text+0x2180): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/fully_conn_perf.cc.o: in function `FULLY_CONNECTED_FullyConnectedTimingCPU_Test::TestBody()':
fully_conn_perf.cc:(.text+0x20e8): undefined reference to `__atomic_load_8'
/usr/bin/ld: fully_conn_perf.cc:(.text+0x2124): undefined reference to `__atomic_load_8'
/usr/bin/ld: fully_conn_perf.cc:(.text+0x228c): undefined reference to `__atomic_load_8'
/usr/bin/ld: fully_conn_perf.cc:(.text+0x22a4): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: fully_conn_perf.cc:(.text+0x22b0): undefined reference to `__atomic_load_8'
/usr/bin/ld: fully_conn_perf.cc:(.text+0x22c4): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/slice_channel_perf.cc.o: in function `SLICE_CHANNEL_PERF_TimingCPU_Test::TestBody()':
slice_channel_perf.cc:(.text+0x1934): undefined reference to `__atomic_load_8'
/usr/bin/ld: slice_channel_perf.cc:(.text+0x194c): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: slice_channel_perf.cc:(.text+0x1958): undefined reference to `__atomic_load_8'
/usr/bin/ld: slice_channel_perf.cc:(.text+0x196c): undefined reference to `__atomic_fetch_add_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o: in function `mxnet::test::tune::TuningTester<long long>::CalculateModeSort(mxnet::test::op::TimingDirection, bool) const':
operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIxE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIxE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1f8): undefined reference to `__atomic_load_8'
/usr/bin/ld: operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIxE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIxE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x20c): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o: in function `mxnet::test::tune::TuningTester<float>::CalculateModeSort(mxnet::test::op::TimingDirection, bool) const':
operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1f8): undefined reference to `__atomic_load_8'
/usr/bin/ld: operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIfE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x20c): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o: in function `mxnet::test::tune::TuningTester<mshadow::half::half_t>::CalculateModeSort(mxnet::test::op::TimingDirection, bool) const':
operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x1f8): undefined reference to `__atomic_load_8'
/usr/bin/ld: tests/CMakeFiles/mxnet_unit_tests.dir/cpp/operator/tune/operator_tune_test.cc.o:operator_tune_test.cc:(.text._ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb[_ZNK5mxnet4test4tune12TuningTesterIN7mshadow4half6half_tEE17CalculateModeSortENS0_2op15TimingDirectionEb]+0x20c): more undefined references to `__atomic_load_8' follow
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

and libmxnet.so was created so I installed it on my raspberry pi and got an error like this when importing it.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/mnt/USB/.mxnet/mxnet/python/mxnet/__init__.py", line 23, in <module>
    from .context import Context, current_context, cpu, gpu, cpu_pinned
  File "/mnt/USB/.mxnet/mxnet/python/mxnet/context.py", line 23, in <module>
    from .base import classproperty, with_metaclass, _MXClassPropertyMetaClass
  File "/mnt/USB/.mxnet/mxnet/python/mxnet/base.py", line 351, in <module>
    _LIB = _load_lib()
  File "/mnt/USB/.mxnet/mxnet/python/mxnet/base.py", line 342, in _load_lib
    lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_LOCAL)
  File "/usr/lib/python3.7/ctypes/__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /mnt/USB/.mxnet/mxnet/python/mxnet/../../build/libmxnet.so: failed to map segment from shared object

@leezu
Copy link
Contributor

leezu commented Jun 15, 2020

@woreom are you trying to cross-compile now? I think you didn't specify the aarch64-linux-gnu-toolchain.cmake file to cmake correctly?

@woreom
Copy link
Author

woreom commented Jun 15, 2020

@leezu this error is form compiling on raspberry pi, I have and am trying to cross-compile with no luck though because I'm not sure how to cross-compile with open-cv.
should I cross-compile opencv in the same location as Openblas ie /usr/local/aarch64-linux-gnu

@woreom
Copy link
Author

woreom commented Jun 15, 2020

@leezu ps I'm sorry for my bad english, I just get overwhelmed writing :))

@leezu
Copy link
Contributor

leezu commented Jun 15, 2020

@woreom yes, you can install the cross-compiled OpenCV to the same location as OpenBLAS.

Regarding above error: Please add the latomic as discussed in #18471 (comment)
Currently I'm not sure why this line is needed for you on ARMv7 but our CI doesn't need it for ARMv7. Hopefully we can find a way to auto-detect it and users don't need to specify it.

Please also open a PR to update the Raspberry Pi install instructions to include information about this line.

@Qengineering
Copy link

Qengineering commented Jul 16, 2020

I've had the same problem with the memory exhausting. It has to do with GNU compiler. The compiler is very memory hungry, especially when long chains off template code are involved. Even with 8 GByte of RAM, the compilation crashes. The solution is using the Clang compilers temporarily when installing MXNet on a 32-bits Raspberry Pi OS. The 64-bit OS didn't suffer from memory shortage. For a detailed discussion please look at https://qengineering.eu/install-mxnet-on-raspberry-pi-4.html

@woreom
Copy link
Author

woreom commented Jul 16, 2020

@Qengineering Thank you for your response, It seems that the CC compiler is the issue however I used GCC-4.9 to overcome it, I wanted to use OpenCV so I had to compile OpenCV with GCC-4.9, too (otherwise it won't work) also the latest python supported by raspbian is python3.7.3 which does not go well with mxnet and OpenCV, so I build python-3.7.4, again with GCC-4.9. I look around your post quit frequently they are really helpful, I can't believe I've missed this one and inflicted so much pain on myself :)))

@woreom woreom closed this as completed Jul 16, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants