Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestCase SegementFault, Testing MNN in ARM32v7REV0 , Linux #181

Closed
nankingrider opened this issue Jul 23, 2019 · 6 comments
Closed

TestCase SegementFault, Testing MNN in ARM32v7REV0 , Linux #181

nankingrider opened this issue Jul 23, 2019 · 6 comments

Comments

@nankingrider
Copy link

stack and registers
using gcc cross-tools 4.9.3
not showing every time , mostly no stack trace is printed.

Save AllTensors to output/*.txt

Open Model wlan_model.mnn
[New Thread 0xb694f450 (LWP 12463)]
[New Thread 0xb614f450 (LWP 12464)]
[New Thread 0xb594f450 (LWP 12469)]
test_main, 199, cost time: 83.486000 ms
===========> Session Resize Done.
===========> Session Start running...
Input: 1, 6, 0, 0
W,H,C,B: 0 X 64 X 0 X 1, L1/MatMul : 0
W,H,C,B: 0 X 64 X 0 X 1, L1/BiasAdd : 0
W,H,C,B: 0 X 64 X 0 X 1, L1/Relu : 0
W,H,C,B: 0 X 128 X 0 X 1, L2/MatMul : 0
W,H,C,B: 0 X 128 X 0 X 1, L2/BiasAdd : 0
W,H,C,B: 0 X 128 X 0 X 1, L2/Relu : 0
W,H,C,B: 0 X 64 X 0 X 1, L3/MatMul : 0
W,H,C,B: 0 X 64 X 0 X 1, L3/BiasAdd : 0
W,H,C,B: 0 X 64 X 0 X 1, L3/Relu : 0
W,H,C,B: 0 X 2 X 0 X 1, logits/MatMul : 0
W,H,C,B: 0 X 2 X 0 X 1, logits/BiasAdd : 0

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb594f450 (LWP 12469)]
0xb6f25eec in MNN::ThreadPool::ThreadPool(int)::{lambda()#1}::operator()() const () at /home/MNN-master/source/backend/cpu/ThreadPool.cpp:176
176 /home/MNN-master/source/backend/cpu/ThreadPool.cpp: No such file or directory.
(gdb) bt
#0 0xb6f25eec in MNN::ThreadPool::ThreadPool(int)::{lambda()#1}::operator()() const () at /home/MNN-master/source/backend/cpu/ThreadPool.cpp:176
#1 0xb6f2c4e4 in std::_Bind_simple<MNN::ThreadPool::ThreadPool(int)::<lambda()>()>::_M_invoke<>(std::_Index_tuple<>) (this=0xd7714)
at /opt/cross_tools/arm32le_4.1_ek/gcc/arm-linux-gnueabi/include/c++/4.9.3/functional:1700
#2 0xb6f2c40c in std::_Bind_simple<MNN::ThreadPool::ThreadPool(int)::<lambda()>()>::operator()(void) (this=0xd7714) at /opt/cross_tools/arm32le_4.1_ek/gcc/arm-linux-gnueabi/include/c++/4.9.3/functional:1688
#3 0xb6f2c374 in std::thread::_Impl<std::_Bind_simple<MNN::ThreadPool::ThreadPool(int)::<lambda()>()> >::_M_run(void) (this=0xd7708) at /opt/cross_tools/arm32le_4.1_ek/gcc/arm-linux-gnueabi/include/c++/4.9.3/thread:115
#4 0xb6c74a40 in ?? () from /usr/lib/libstdc++.so.6
#5 0xb6cb22e8 in start_thread () from /lib/libpthread.so.0
#6 0xb6a4a54c in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) info registers
r0 0xb594ede4 3046436324
r1 0x81 129
r2 0x0 0
r3 0x736e6f43 1936617283
r4 0xd76f0 882416
r5 0xb6ca4000 3066707968
r6 0xb594f668 3046438504
r7 0x152 338
r8 0x0 0
r9 0xb594ef90 3046436752
r10 0xb594f910 3046439184
r11 0xb594ef8c 3046436748
r12 0xb6cd5000 3066908672
sp 0xb594edd8 0xb594edd8
lr 0xb6e47280 3068424832
pc 0xb6f25eec 0xb6f25eec <MNN::ThreadPool::ThreadPool(int)::{lambda()#1}::operator()() const+408>
cpsr 0x20000010 536870928
(gdb)

@jxt1234
Copy link
Collaborator

jxt1234 commented Jul 23, 2019

Does "set MNN_USE_THREAD_POOL = off
use openmp " crash?

@nankingrider
Copy link
Author

set MNN_USE_THREAD_POOL OFF
set MNN_OPENMP ON

compile failed

PEK1000248505:/home/MNN-master/build # make -j4
Scanning dependencies of target MNN_SCHEMA
*** done ***
[ 0%] Built target MNN_SCHEMA
Scanning dependencies of target MNN
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/BackendFactory.cpp.o
[ 1%] Building C object CMakeFiles/MNN.dir/source/core/MNNMemoryUtils.c.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/AutoTime.cpp.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/Backend.cpp.o
arm-linux-gnueabi-g++: error: NOTFOUND: No such file or directory
arm-linux-gnueabi-g++: error: NOTFOUND: No such file or directory
arm-linux-gnueabi-g++: error: NOTFOUND: No such file or directory
arm-linux-gnueabi-gcc: error: NOTFOUND: No such file or directory
CMakeFiles/MNN.dir/build.make:86: recipe for target 'CMakeFiles/MNN.dir/source/core/AutoTime.cpp.o' failed
make[2]: *** [CMakeFiles/MNN.dir/source/core/AutoTime.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/MNN.dir/build.make:110: recipe for target 'CMakeFiles/MNN.dir/source/core/Backend.cpp.o' failed
make[2]: *** [CMakeFiles/MNN.dir/source/core/Backend.cpp.o] Error 1
CMakeFiles/MNN.dir/build.make:134: recipe for target 'CMakeFiles/MNN.dir/source/core/BackendFactory.cpp.o' failed
make[2]: *** [CMakeFiles/MNN.dir/source/core/BackendFactory.cpp.o] Error 1
CMakeFiles/MNN.dir/build.make:62: recipe for target 'CMakeFiles/MNN.dir/source/core/MNNMemoryUtils.c.o' failed
make[2]: *** [CMakeFiles/MNN.dir/source/core/MNNMemoryUtils.c.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MNN.dir/all' failed
make[1]: *** [CMakeFiles/MNN.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
PEK1000248505:/home/MNN-master/build #

@nankingrider
Copy link
Author

set MNN_USE_THREAD_POOL OFF
set MNN_OPENMP OFF

still compile failed

PEK1000248505:/home/MNN-master/build # make -j4
Scanning dependencies of target MNN_SCHEMA
*** done ***
[ 0%] Built target MNN_SCHEMA
Scanning dependencies of target MNN
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/BackendFactory.cpp.o
[ 1%] Building C object CMakeFiles/MNN.dir/source/core/MNNMemoryUtils.c.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/Backend.cpp.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/AutoTime.cpp.o
[ 2%] Building CXX object CMakeFiles/MNN.dir/source/core/BackendRegister.cpp.o
[ 2%] Building CXX object CMakeFiles/MNN.dir/source/core/BufferAllocator.cpp.o
[ 3%] Building CXX object CMakeFiles/MNN.dir/source/core/Execution.cpp.o
[ 3%] Building CXX object CMakeFiles/MNN.dir/source/core/Interpreter.cpp.o
[ 4%] Building CXX object CMakeFiles/MNN.dir/source/core/Pipeline.cpp.o
[ 4%] Building CXX object CMakeFiles/MNN.dir/source/core/Schedule.cpp.o
[ 5%] Building CXX object CMakeFiles/MNN.dir/source/core/Session.cpp.o
[ 5%] Building CXX object CMakeFiles/MNN.dir/source/core/SizeComputer.cpp.o
[ 6%] Building CXX object CMakeFiles/MNN.dir/source/core/Tensor.cpp.o
[ 6%] Building CXX object CMakeFiles/MNN.dir/source/core/TensorUtils.cpp.o
[ 7%] Building CXX object CMakeFiles/MNN.dir/source/core/WrapExecution.cpp.o
[ 7%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUArgMax.cpp.o
[ 8%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUAsString.cpp.o
[ 8%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBackend.cpp.o
[ 8%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBatchMatMul.cpp.o
[ 9%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBatchToSpaceND.cpp.o
[ 9%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBinary.cpp.o
[ 10%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUCast.cpp.o
[ 10%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConcat.cpp.o
[ 11%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConst.cpp.o
[ 11%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConv2DBackPropFilter.cpp.o
In file included from /home/MNN-master/source/backend/cpu/CPUConv2DBackPropFilter.cpp:10:0:
/home/MNN-master/source/core/Concurrency.h:53:17: fatal error: omp.h: No such file or directory
#include <omp.h>
^
compilation terminated.
CMakeFiles/MNN.dir/build.make:638: recipe for target 'CMakeFiles/MNN.dir/source/backend/cpu/CPUConv2DBackPropFilter.cpp.o' failed
make[2]: *** [CMakeFiles/MNN.dir/source/backend/cpu/CPUConv2DBackPropFilter.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MNN.dir/all' failed
make[1]: *** [CMakeFiles/MNN.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
PEK1000248505:/home/MNN-master/build #

@nankingrider
Copy link
Author

update:

copy omp.h to ./include then recompile MNN ok

(cp /opt/cross_tools/sysroot-bcm_armv7a-glibc_small/x86_64-wrlinuxsdk-linux/usr/toolchain/lib/gcc/arm-wrs-linux-gnueabi/4.8.1/include/omp.h include/)

this time MNNV2Basic.out worked fine.

maybe MNN should place a omp.h in ./include ?

@Sugaryou
Copy link
Contributor

set MNN_FORBID_MULTI_THREAD ON
set MNN_USE_THREAD_POOL OFF
set MNN_OPENMP OFF

then it worked.

@jxt1234
Copy link
Collaborator

jxt1234 commented Aug 15, 2019

The bug in thread pool has been fixed, you can try set MNN_USE_THREAD_POOL ON

@jxt1234 jxt1234 closed this as completed Aug 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants