apache / mxnet

Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
https://mxnet.apache.org
Apache License 2.0
20.78k stars 6.79k forks source link

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

Closed woreom closed 4 years ago

woreom commented 4 years ago

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

leezu commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

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

leezu commented 4 years ago

@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 https://github.com/apache/incubator-mxnet/issues/18471#issuecomment-644292393 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 commented 4 years ago

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 commented 4 years ago

@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 :)))