Browse Source

!14213 parallel bug fix

From: @zhujingxuan
Reviewed-by: @wangchengyuan,@wangchengyuan
Signed-off-by: @wangchengyuan
pull/14213/MERGE
mindspore-ci-bot Gitee 4 years ago
parent
commit
7d3ed77fff
8 changed files with 66 additions and 61 deletions
  1. +1
    -0
      mindspore/lite/micro/CMakeLists.txt
  2. +0
    -9
      mindspore/lite/micro/cmake/file_list.cmake
  3. +0
    -17
      mindspore/lite/micro/cmake/package_android.cmake
  4. +0
    -22
      mindspore/lite/micro/cmake/package_nnacl.cmake
  5. +2
    -5
      mindspore/lite/micro/cmake/package_wrapper.cmake
  6. +1
    -1
      mindspore/lite/micro/coder/generator/component/const_blocks/benchmark.cc
  7. +0
    -2
      mindspore/lite/micro/coder/generator/component/const_blocks/cmake_lists.cc
  8. +62
    -5
      mindspore/lite/micro/coder/operator_library/CMakeLists.txt

+ 1
- 0
mindspore/lite/micro/CMakeLists.txt View File

@@ -13,6 +13,7 @@ include(${TOP_DIR}/cmake/dependency_utils.cmake)
include(${TOP_DIR}/cmake/dependency_securec.cmake)
if(NOT PLATFORM_ARM64 AND NOT PLATFORM_ARM32)
set(ENABLE_CONVERTER ON)
set(BUILD_LITE ON)
include(${TOP_DIR}/cmake/external_libs/glog.cmake)
### flatbuffer
include(${TOP_DIR}/cmake/external_libs/flatbuffers.cmake)


+ 0
- 9
mindspore/lite/micro/cmake/file_list.cmake View File

@@ -125,23 +125,14 @@ set(CODER_OPCODERS_SRC
set(LITE_SRC
${LITE_DIR}/src/common/file_utils.cc
${LITE_DIR}/src/common/graph_util.cc
${LITE_DIR}/src/common/string_util.cc
${LITE_DIR}/src/common/prim_util.cc
${LITE_DIR}/src/common/tensor_util.cc
${LITE_DIR}/src/runtime/allocator.cc
${LITE_DIR}/src/runtime/infer_manager.cc
${LITE_DIR}/src/runtime/runtime_api.cc
${LITE_DIR}/src/lite_model.cc
${LITE_DIR}/src/tensorlist.cc
${LITE_DIR}/src/tensor.cc
${LITE_DIR}/src/scheduler.cc
${LITE_DIR}/src/inner_context.cc
${LITE_DIR}/src/dequant.cc
${LITE_DIR}/src/kernel_registry.cc
${LITE_DIR}/src/lite_kernel.cc
${LITE_DIR}/src/sub_graph_kernel.cc
${LITE_DIR}/src/huffman_decode.cc
${LITE_DIR}/src/executor.cc
${LITE_DIR}/src/common/log_adapter.cc
${LITE_DIR}/src/common/utils.cc
### populate operator parameter


+ 0
- 17
mindspore/lite/micro/cmake/package_android.cmake View File

@@ -1,17 +0,0 @@
option(MICRO_BUILD_ARM64 "build android arm64" OFF)
option(MICRO_BUILD_ARM32A "build android arm32" OFF)

if(MICRO_BUILD_ARM64 OR MICRO_BUILD_ARM32A)
add_compile_definitions(ENABLE_NEON)
add_compile_definitions(ENABLE_ARM)
endif()

if(MICRO_BUILD_ARM64)
add_compile_definitions(ENABLE_ARM64)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8.2-a+dotprod")
endif()

if(MICRO_BUILD_ARM32A)
add_compile_definitions(ENABLE_ARM32)
add_definitions(-mfloat-abi=softfp -mfpu=neon)
endif()

+ 0
- 22
mindspore/lite/micro/cmake/package_nnacl.cmake View File

@@ -1,22 +0,0 @@
include_directories(${LITE_DIR})
set(NNACL_DIR ${LITE_DIR}/nnacl)
file(GLOB KERNEL_SRC
${NNACL_DIR}/*.c
${NNACL_DIR}/base/*.c
${NNACL_DIR}/fp32/*.c
${NNACL_DIR}/int8/*.c
)

if(MICRO_BUILD_ARM64)
file(GLOB ASSEMBLY_SRC ${NNACL_DIR}/assembly/arm64/*.S)
file(GLOB OPT_SRC ${NNACL_DIR}/assembly/opt/*.S)
list(APPEND ASSEMBLY_SRC ${OPT_SRC})
set_property(SOURCE ${ASSEMBLY_SRC} PROPERTY LANGUAGE C)
endif()

if(MICRO_BUILD_ARM32A)
file(GLOB ASSEMBLY_SRC ${NNACL_DIR}/assembly/arm32/*.S)
set_property(SOURCE ${ASSEMBLY_SRC} PROPERTY LANGUAGE C)
endif()

set(NNACL_OPS ${KERNEL_SRC} ${ASSEMBLY_SRC})

+ 2
- 5
mindspore/lite/micro/cmake/package_wrapper.cmake View File

@@ -1,10 +1,7 @@
include_directories(${LITE_DIR}/micro/coder/operator_library)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(WRAPPER_DIR ${LITE_DIR}/micro/coder/operator_library/wrapper/)

set(RUNTIME_SRC
${LITE_DIR}/src/runtime/thread_pool.c
)


set(WRAPPER_SRC
${WRAPPER_DIR}/base/common_wrapper.c
@@ -24,4 +21,4 @@ set(WRAPPER_SRC
${WRAPPER_DIR}/int8/batchnorm_int8_wrapper.c
)

list(APPEND FILE_SET ${WRAPPER_SRC} ${RUNTIME_SRC})
list(APPEND FILE_SET ${WRAPPER_SRC})

+ 1
- 1
mindspore/lite/micro/coder/generator/component/const_blocks/benchmark.cc View File

@@ -131,7 +131,7 @@ int main(int argc, const char **argv) {
}

lite::Context *context = nullptr;
if (argc >= 5) {
if (argc >= 6) {
// config benchmark context
context = new (std::nothrow) lite::Context();
if (context == nullptr) {


+ 0
- 2
mindspore/lite/micro/coder/generator/component/const_blocks/cmake_lists.cc View File

@@ -42,7 +42,6 @@ endif()

if(MICRO_BUILD_ARM64)
add_compile_definitions(ENABLE_ARM64)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8.2-a+dotprod")
endif()

if(MICRO_BUILD_ARM32A)
@@ -113,7 +112,6 @@ endif()

if(MICRO_BUILD_ARM64)
add_compile_definitions(ENABLE_ARM64)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8.2-a+dotprod")
endif()

if(MICRO_BUILD_ARM32A)


+ 62
- 5
mindspore/lite/micro/coder/operator_library/CMakeLists.txt View File

@@ -19,9 +19,12 @@ if(ENABLE_ASAN)
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} ${OPTION_CXX_FLAGS} -lasan")
endif()

include_directories(${LITE_DIR})
set(MICRO_CMAKE_PATH ${MICRO_DIR}/cmake)
set(OPERATOR_LIBRARY_PATH ${CMAKE_BINARY_DIR}/operator_library)
set(HEADER_PATH "${OPERATOR_LIBRARY_PATH}/include")
set(LIB_PATH "${OPERATOR_LIBRARY_PATH}/lib")
set(NNACL_DIR ${LITE_DIR}/nnacl)

message("===========>start to pack operators' head file")
file(REMOVE_RECURSE ${OPERATOR_LIBRARY_PATH})
@@ -40,24 +43,78 @@ file(COPY ${CMAKE_BINARY_DIR}/cmsis/CMSIS/Core/Include
DESTINATION ${HEADER_PATH}/CMSIS/Core)

if(PLATFORM_ARM64)
set(MICRO_BUILD_ARM64 ON)
add_compile_definitions(ENABLE_ARM64)
endif()

if(PLATFORM_ARM32)
add_compile_definitions(ENABLE_ARM32)
add_definitions(-mfloat-abi=softfp -mfpu=neon)
endif()

if(PLATFORM_ARM64 OR PLATFORM_ARM32)
add_compile_definitions(ENABLE_NEON)
add_compile_definitions(ENABLE_ARM)
endif()

file(GLOB KERNEL_SRC
${NNACL_DIR}/*.c
${NNACL_DIR}/base/*.c
${NNACL_DIR}/fp32/*.c
${NNACL_DIR}/int8/*.c
)

if(PLATFORM_ARM64)
file(GLOB ASSEMBLY_SRC ${NNACL_DIR}/assembly/arm64/*.S)
set_property(SOURCE ${ASSEMBLY_SRC} PROPERTY LANGUAGE C)
endif()

if(PLATFORM_ARM32)
set(MICRO_BUILD_ARM32A ON)
file(GLOB ASSEMBLY_SRC ${NNACL_DIR}/assembly/arm32/*.S)
set_property(SOURCE ${ASSEMBLY_SRC} PROPERTY LANGUAGE C)
endif()

include(${MICRO_CMAKE_PATH}/package_android.cmake)
include(${MICRO_CMAKE_PATH}/package_nnacl.cmake)
set(NNACL_OPS ${KERNEL_SRC} ${ASSEMBLY_SRC})
set(RUNTIME_SRC ${LITE_DIR}/src/runtime/thread_pool.c)

include(${MICRO_CMAKE_PATH}/package_cmsis.cmake)
include(${MICRO_CMAKE_PATH}/package_wrapper.cmake)

list(APPEND OP_FILES ${NNACL_OPS} ${WRAPPER_SRC} ${RUNTIME_SRC})

set(LIB_PATH "${OPERATOR_LIBRARY_PATH}/lib")
if(NOT PLATFORM_ARM64 AND NOT PLATFORM_ARM32)
list(APPEND OP_FILES ${CMSIS_OPS})
endif()


# generate static library
add_library(ops STATIC ${OP_FILES})

function(create_library)
string(CONCAT library_name "lib" ops ".a")
string(CONCAT opt_name "lib" opt_ops ".a")
set(ANDROID_AR
${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar)
add_custom_command(TARGET ops
POST_BUILD
COMMAND rm -rf tmp
COMMAND mkdir tmp
COMMAND mv ${opt_name} ./tmp && cd ./tmp && ${ANDROID_AR} -x ${opt_name}
COMMAND mv ${library_name} ./tmp && cd ./tmp && ${ANDROID_AR} -x ${library_name}
COMMENT "unzip raw static library ${library_name}"
COMMAND ${ANDROID_AR} cr ${library_name} ./tmp/*.o
COMMAND rm -rf tmp
COMMENT "generate specified static library ${library_name}"
)
endfunction()

if(PLATFORM_ARM64)
file(GLOB OPT_SRC ${NNACL_DIR}/assembly/opt/*.S)
set_property(SOURCE ${OPT_SRC} PROPERTY LANGUAGE C)
add_library(opt_ops STATIC ${OPT_SRC})

add_dependencies(ops opt_ops)
set_target_properties(opt_ops PROPERTIES COMPILE_FLAGS -march=armv8.2-a+dotprod)
create_library()
endif()

install(TARGETS ops ARCHIVE DESTINATION ${LIB_PATH})

Loading…
Cancel
Save