alibaba / MNN

MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
http://www.mnn.zone/
8.63k stars 1.66k forks source link

Linking against MNN on STM32MP1 OpenLinux platform #984

Closed sgiurgiu closed 8 months ago

sgiurgiu commented 4 years ago

平台(如果交叉编译请再附上交叉编译目标平台):

Platform(Include target platform as well if cross-compiling):

Host: Linux x64 Target: STM32MP1 2.6-openstlinux-20-02-19 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 48.00 Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5

Github版本:

Github Version:

master, latest commit as of Jul 20, 2020 Latest commit: Commit: a6836bb50a4ba615bfc8b6a367d282120a274097 Author: xiaying xiaotang.jxt@alibaba-inc.com Date: (12 days ago) 2020-07-09 14:44:34 +0800 Subject: Support Tensorflow ClipByValue

编译方式:

Compiling Method

CMake

cmake -DMNN_BUILD_SHARED_LIBS=OFF -DMNN_BUILD_TOOLS=OFF -DMNN_PORTABLE_BUILD=ON -DCMAKE_INSTALL_PREFIX=../usr/local -DCMAKE_BUILD_TYPE=Release -DMNN_OPENGL=OFF -DARCHS=arm64 ../../MNN

编译日志:

Build Log:

https://pastebin.com/3FxXxdLZ

Compiling the library works fine. But now I want to compile my library against libMNN.a. My library is a shared (.so) library for the same platform (STM32MP1)

The relevant portion of my CMakeLists.txt are:

if(USE_MNN)
    message("Using the MNN DNN implementation")
    find_library(LIB_MNN MNN)
    find_package(Threads)
endif()

#and then later

if(USE_MNN)
    target_compile_definitions(${LIB_NAME} PRIVATE USE_MNN MNN_USE_NEON)
    target_link_libraries(${LIB_NAME} PRIVATE "-Wl,--whole-archive" ${LIB_MNN} "-Wl,--no-whole-archive" Threads::Threads)
endif()

However, linking against MNN throws these errors:

https://pastebin.com/buqbKkAj

Any suggestions are welcome.

sgiurgiu commented 4 years ago

If I try to compile the library with :

cmake -DMNN_BUILD_SHARED_LIBS=OFF -DMNN_BUILD_TOOLS=OFF -DMNN_PORTABLE_BUILD=ON -DCMAKE_INSTALL_PREFIX=../usr/local -DCMAKE_BUILD_TYPE=Release -DMNN_OPENGL=OFF -DARCHS=armv7 ../../MNN

Then upon make I get:

[  2%] Building CXX object CMakeFiles/MNNCV.dir/source/cv/ImageBlitter.cpp.o
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S: Assembler messages:
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:28: Error: selected processor does not support `vld1.32 {q15},[r1]!' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:37: Error: selected processor does not support `vld1.32 {q0,q1},[r5]!' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:38: Error: selected processor does not support `vadd.f32 q0,q0,q15' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:39: Error: selected processor does not support `vld1.32 {q2,q3},[r5]' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:40: Error: selected processor does not support `vadd.f32 q1,q1,q15' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:41: Error: selected processor does not support `vadd.f32 q2,q2,q15' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:42: Error: selected processor does not support `vst1.32 {q0,q1},[r0]!' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:43: Error: selected processor does not support `vadd.f32 q3,q3,q15' in ARM mode
MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:44: Error: selected processor does not support `vst1.32 {q2,q3},[r0]!' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:53: Error: selected processor does not support `vld1.32 {q0},[r0]' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:54: Error: selected processor does not support `vadd.f32 q0,q0,q15' in ARM mode
/MNN/source/backend/cpu/arm/arm32/MNNAddBias.S:56: Error: selected processor does not support `vst1.32 {q0},[r0]!' in ARM mode
make[2]: *** [CMakeFiles/MNNARM32.dir/build.make:63: CMakeFiles/MNNARM32.dir/source/backend/cpu/arm/arm32/MNNAddBias.S.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:118: CMakeFiles/MNNARM32.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
github-actions[bot] commented 8 months ago

Marking as stale. No activity in 60 days.