From 02878c2378dc2a338e6ef04e49aa4307cba2ca32 Mon Sep 17 00:00:00 2001 From: dingpeifei Date: Fri, 30 Jul 2021 17:16:02 +0800 Subject: [PATCH] release debug master 0730 --- CMakeLists.txt | 3 + build.sh | 12 +++- cmake/options.cmake | 1 + cmake/package.cmake | 2 + cmake/package_script.cmake | 55 +++++++++++++++++++ mindspore/ccsrc/CMakeLists.txt | 2 +- mindspore/ccsrc/runtime/device/CMakeLists.txt | 2 +- 7 files changed, 73 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b61c1987f1..098b8af2383 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,9 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") -Wno-return-std-move -Wno-unused-private-field -Wno-unused-lambda-capture -Wno-sign-compare \ -Wno-overloaded-virtual -Wno-unneeded-internal-declaration -Wno-unused-variable -Wno-pessimizing-move \ -Wno-inconsistent-missing-override -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2") +elseif(ENABLE_SYM_FILE) + set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -g -ggdb -Wl,--allow-shlib-undefined \ + -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2") else() set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wl,--allow-shlib-undefined \ -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2") diff --git a/build.sh b/build.sh index 17dc8f19629..83ea081fca1 100755 --- a/build.sh +++ b/build.sh @@ -27,7 +27,7 @@ usage() echo " [-P on|off] [-z [on|off]] [-M on|off] [-V 10.1|11.1|310|910] [-I arm64|arm32|x86_64] [-K] \\" echo " [-B on|off] [-E] [-l on|off] [-n full|lite|off] [-H on|off] \\" echo " [-A on|off] [-S on|off] [-k on|off] [-W sse|neon|avx|avx512|off] \\" - echo " [-L Tensor-RT path] \\" + echo " [-L Tensor-RT path] [-y on|off] \\" echo "" echo "Options:" echo " -d Debug mode" @@ -64,6 +64,7 @@ usage() echo " -W Enable x86_64 SSE or AVX instruction set, use [sse|neon|avx|avx512|off], default off for lite and avx for CPU" echo " -H Enable hidden" echo " -L Link and specify Tensor-RT library path, default disable Tensor-RT lib linking" + echo " -y Compile the symbol table switch and save the symbol table to the directory output" } # check value of input is 'on' or 'off' @@ -122,8 +123,9 @@ checkopts() TENSORRT_HOME="" USER_ENABLE_DUMP_IR=false USER_ENABLE_DEBUGGER=false + ENABLE_SYM_FILE="off" # Process the options - while getopts 'drvj:c:t:hb:s:a:g:p:ie:m:l:I:RP:D:zM:V:K:B:En:A:S:k:W:H:L:' opt + while getopts 'drvj:c:t:hb:s:a:g:p:ie:m:l:I:RP:D:zM:V:K:B:En:A:S:k:W:H:L:y' opt do CASE_SENSIVE_ARG=${OPTARG} OPTARG=$(echo ${OPTARG} | tr '[A-Z]' '[a-z]') @@ -140,6 +142,9 @@ checkopts() exit 1 fi ;; + y) + ENABLE_SYM_FILE="on" + ;; r) DEBUG_MODE="off" ;; @@ -442,6 +447,9 @@ build_mindspore() if [[ -n "$TRAIN_MODE" ]]; then CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_${TRAIN_MODE}=ON" fi + if [[ "X$ENABLE_SYM_FILE" = "Xon" ]]; then + CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_SYM_FILE=ON" + fi if [[ "X$ENABLE_ASAN" = "Xon" ]]; then CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_ASAN=ON" fi diff --git a/cmake/options.cmake b/cmake/options.cmake index c4bd42b3223..59d5861c5ed 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -25,6 +25,7 @@ option(ENABLE_ACL "enable acl" OFF) option(ENABLE_GLIBCXX "enable_glibcxx" OFF) option(MODE_ASCEND_ALL "supports all ascend platform" OFF) option(MODE_ASCEND_ACL "supports ascend acl mode only" OFF) +option(ENABLE_SYM_FILE "enable sym file" OFF) if(NOT ENABLE_D AND NOT ENABLE_TESTCASES AND NOT ENABLE_ACL AND NOT ENABLE_GE) set(ENABLE_GLIBCXX ON) diff --git a/cmake/package.cmake b/cmake/package.cmake index 417b4813dd8..506f5ee86dc 100644 --- a/cmake/package.cmake +++ b/cmake/package.cmake @@ -12,6 +12,8 @@ set(CPACK_TEMPORARY_PACKAGE_FILE_NAME ${BUILD_PATH}/package/mindspore) set(CPACK_TEMPORARY_INSTALL_DIRECTORY ${BUILD_PATH}/package/mindspore) set(CPACK_PACK_ROOT_DIR ${BUILD_PATH}/package/) set(CPACK_CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}) +set(CPACK_ENABLE_SYM_FILE ${ENABLE_SYM_FILE}) +set(CPACK_CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}) if(ENABLE_GE) set(CPACK_MS_BACKEND "ge") set(CPACK_MS_TARGET "ascend or cpu") diff --git a/cmake/package_script.cmake b/cmake/package_script.cmake index edef651b414..bdfcd13314d 100644 --- a/cmake/package_script.cmake +++ b/cmake/package_script.cmake @@ -77,6 +77,48 @@ set(ENV{BACKEND_TARGET} ${CPACK_MS_TARGET}) set(ENV{MS_PACKAGE_NAME} ${CPACK_MS_PACKAGE_NAME}) set(ENV{COMMIT_ID} ${GIT_COMMIT_ID}) +file(GLOB DEBUG_SYM + ${MS_PACK_ROOT_DIR}/mindspore/*.so + ${MS_PACK_ROOT_DIR}/mindspore/lib/*.so +) + +file(GLOB DEBUG_STRIP_SYM + ${MS_PACK_ROOT_DIR}/mindspore/*.so + ${MS_PACK_ROOT_DIR}/mindspore/lib/*.so* +) + +set(CMAKE_OBJCOPY $ENV{CROSS_COMPILE}objcopy) +set(CMAKE_STRIP $ENV{CROSS_COMPILE}strip) + +if(CPACK_ENABLE_SYM_FILE) + foreach(schema ${DEBUG_SYM}) + execute_process( + COMMAND ${CMAKE_OBJCOPY} "--only-keep-debug" ${schema} ${schema}.sym + WORKING_DIRECTORY ${MS_PACK_ROOT_DIR} + ) + endforeach() +endif() + +if("${CPACK_CMAKE_BUILD_TYPE}" STREQUAL "Release") + foreach(schema ${DEBUG_STRIP_SYM}) + execute_process( + COMMAND ${CMAKE_STRIP} ${schema} + WORKING_DIRECTORY ${MS_PACK_ROOT_DIR} + ) + endforeach() +endif() + +file(GLOB DEBUG_SYM_FILE + ${MS_PACK_ROOT_DIR}/mindspore/*.sym + ${MS_PACK_ROOT_DIR}/mindspore/lib/*.sym +) + +if(CPACK_ENABLE_SYM_FILE) + file(MAKE_DIRECTORY ${MS_ROOT_DIR}/debug_info) + file(COPY ${DEBUG_SYM_FILE} DESTINATION ${MS_ROOT_DIR}/debug_info/) + file(REMOVE_RECURSE ${DEBUG_SYM_FILE}) +endif() + execute_process( COMMAND ${PYTHON} ${MS_ROOT_DIR}/setup.py "bdist_wheel" WORKING_DIRECTORY ${MS_PACK_ROOT_DIR} @@ -104,3 +146,16 @@ file(COPY ${MS_PACK_ROOT_DIR}/${NEW_FILE_NAME} DESTINATION ${MS_ROOT_DIR}/output file(SHA256 ${MS_ROOT_DIR}/output/${NEW_FILE_NAME} SHA256_VAR) file(WRITE ${MS_ROOT_DIR}/output/${NEW_FILE_NAME}.sha256 ${SHA256_VAR} " " ${NEW_FILE_NAME}) +set(CMAKE_TAR $ENV{CROSS_COMPILE}tar) +if(CPACK_ENABLE_SYM_FILE) + file(MAKE_DIRECTORY ${MS_ROOT_DIR}/output/${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}) + file(COPY ${MS_ROOT_DIR}/debug_info/ DESTINATION + ${MS_ROOT_DIR}/output/${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}/) + execute_process(COMMAND + ${CMAKE_COMMAND} -E ${CMAKE_TAR} cfv + ${MS_ROOT_DIR}/output/${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}.zip + ${MS_ROOT_DIR}/output/${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}/ --format=zip + WORKING_DIRECTORY ${MS_ROOT_DIR}) + file(REMOVE_RECURSE ${MS_ROOT_DIR}/debug_info) + file(REMOVE_RECURSE ${MS_ROOT_DIR}/output/${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}) +endif() diff --git a/mindspore/ccsrc/CMakeLists.txt b/mindspore/ccsrc/CMakeLists.txt index 7027396063c..444d08a5edd 100644 --- a/mindspore/ccsrc/CMakeLists.txt +++ b/mindspore/ccsrc/CMakeLists.txt @@ -325,7 +325,7 @@ endif() set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set_property(SOURCE "pipeline/jit/init.cc" PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_PIPELINE) -pybind11_add_module(_c_expression "pipeline/jit/init.cc") +pybind11_add_module(_c_expression NO_EXTRAS "pipeline/jit/init.cc") MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}") if(CMAKE_SYSTEM_NAME MATCHES "Linux") diff --git a/mindspore/ccsrc/runtime/device/CMakeLists.txt b/mindspore/ccsrc/runtime/device/CMakeLists.txt index c7e99adbbea..56cd9fe6275 100644 --- a/mindspore/ccsrc/runtime/device/CMakeLists.txt +++ b/mindspore/ccsrc/runtime/device/CMakeLists.txt @@ -42,7 +42,7 @@ if(ENABLE_MPI) if(ENABLE_GPU) set_property(SOURCE "gpu/mpi/mpi_initializer.cc" PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_DEVICE) - pybind11_add_module(_ms_mpi "gpu/mpi/mpi_initializer.cc") + pybind11_add_module(_ms_mpi NO_EXTRAS "gpu/mpi/mpi_initializer.cc") target_link_libraries(_ms_mpi PRIVATE mindspore::pybind11_module mindspore::ompi) endif()