diff --git a/cmake/modules/CMakeASCENDInformation.cmake b/cmake/modules/CMakeASCENDInformation.cmake index 1aa3853a7e1f05dab3db7232c53a1361a1163184..4347390734bb81bc0a1d81eabeba98e845c8b695 100644 --- a/cmake/modules/CMakeASCENDInformation.cmake +++ b/cmake/modules/CMakeASCENDInformation.cmake @@ -35,7 +35,7 @@ include(CMakeCommonLanguageInclude) set(CMAKE_ASCEND_FLAGS "-std=c++${CMAKE_CXX_STANDARD}") -if(DEFINED ENABLE_MSDEBUG AND ENABLE_MSDEBUG) +if(DEFINED ASCEND_ENABLE_MSDEBUG AND ASCEND_ENABLE_MSDEBUG) set(CMAKE_ASCEND_FLAGS_DEBUG "-O0 -g") else() set(CMAKE_ASCEND_FLAGS_DEBUG "-Xhost-start -O0 -g -Xhost-end -Xaicore-start -O2 -Xaicore-end") diff --git a/cmake/modules/CMakeDetermineASCENDCompiler.cmake b/cmake/modules/CMakeDetermineASCENDCompiler.cmake index 72b7563fd7e40e49593471691f2caebeb4f02960..bfaf69c316a727d89e466ded628935290308a703 100644 --- a/cmake/modules/CMakeDetermineASCENDCompiler.cmake +++ b/cmake/modules/CMakeDetermineASCENDCompiler.cmake @@ -33,10 +33,32 @@ set(_CMAKE_ASCEND_HOST_IMPLICIT_LINK_DIRECTORIES set(_CMAKE_ASCEND_HOST_IMPLICIT_LINK_LIBRARIES stdc++ - runtime ) -if(DEFINED ENABLE_MSPROF AND ENABLE_MSPROF) +if(DEFINED ASCEND_ENABLE_SIMULATOR AND ASCEND_ENABLE_SIMULATOR) + if(NOT DEFINED SIMULATOR_NPU_MODEL) + message(WARNING "Simulator mode is enabled but SIMULATOR_NPU_MODEL is not defined. Try get model from LD_LIBRARY_PATH.") + set(LD_LIBRARY_PATH $ENV{LD_LIBRARY_PATH}) + string(REGEX MATCH "simulator/([^:/]*)" SUBDIR "${LD_LIBRARY_PATH}") + if(SUBDIR) + set(SIMULATOR_NPU_MODEL "${CMAKE_MATCH_1}") + message(STATUS "Matched SIMULATOR_NPU_MODEL: ${SIMULATOR_NPU_MODEL}") + else() + message(FATAL_ERROR "No SIMULATOR_NPU_MODEL matched!") + endif() + endif() + + list(APPEND _CMAKE_ASCEND_HOST_IMPLICIT_LINK_DIRECTORIES + ${_CMAKE_ASCEND_HOME_PATH}/tools/simulator/${SIMULATOR_NPU_MODEL}/lib + ${_CMAKE_ASCEND_HOME_PATH}/acllib/lib64/stub) + list(APPEND _CMAKE_ASCEND_HOST_IMPLICIT_LINK_LIBRARIES + runtime_camodel) +else() + list(APPEND _CMAKE_ASCEND_HOST_IMPLICIT_LINK_LIBRARIES + runtime) +endif() + +if(DEFINED ASCEND_ENABLE_MSPROF AND ASCEND_ENABLE_MSPROF) list(APPEND _CMAKE_ASCEND_HOST_IMPLICIT_LINK_LIBRARIES profapi) endif() @@ -46,7 +68,7 @@ set(_CMAKE_ASCEND_HOST_IMPLICIT_INCLUDE_DIRECTORIES ${_CMAKE_ASCEND_HOME_PATH}/include/experiment/msprof ) -if(NOT DEFINED ENABLE_ASCENDC OR ENABLE_ASCENDC) +if(NOT DEFINED ASCEND_ENABLE_ASCENDC OR ASCEND_ENABLE_ASCENDC) list(APPEND _CMAKE_ASCEND_HOST_IMPLICIT_INCLUDE_DIRECTORIES ${_CMAKE_ASCEND_HOME_PATH}/compiler/tikcpp ${_CMAKE_ASCEND_HOME_PATH}/compiler/tikcpp/tikcfw diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index cd1386464736b310888be0ddf56c666e45a3a928..8743681b13e4c72076a975f83165ff410857422a 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -11,11 +11,15 @@ set(CATLASS_EXAMPLES_COMMON_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common) add_custom_target(catlass_examples) macro(catlass_example_add_executable NAME AICORE_ARCH) + set(EXAMPLE_DESTINATION bin) + if(DEFINED ENABLE_SIMULATOR AND ENABLE_SIMULATOR) + set(EXAMPLE_DESTINATION bin_sim) + endif() add_executable(${NAME} ${ARGN}) target_compile_options(${NAME} PRIVATE $<$:--cce-aicore-arch=${AICORE_ARCH}>) add_dependencies(catlass_examples ${NAME}) - install(TARGETS ${NAME} DESTINATION bin COMPONENT ${NAME}) - install(TARGETS ${NAME} DESTINATION bin COMPONENT catlass_examples) + install(TARGETS ${NAME} DESTINATION ${EXAMPLE_DESTINATION} COMPONENT ${NAME}) + install(TARGETS ${NAME} DESTINATION ${EXAMPLE_DESTINATION} COMPONENT catlass_examples) endmacro() add_compile_options( diff --git a/scripts/build.sh b/scripts/build.sh index b32152c25e206c00b12472d853ad23d9ac93ef84..f9d2a4f966e9c7b61307b8d215f3c160be389116 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -12,11 +12,25 @@ set -o errexit set -o nounset set -o pipefail -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -BLUE='\033[0;34m' -NC='\033[0m' +NC="\033[0m" +RED="\033[0;31m" +GREEN="\033[0;32m" +YELLOW="\033[0;33m" +BLUE="\033[0;34m" + +ERROR="${RED}[ERROR]" +INFO="${GREEN}[INFO]" +WARN="${YELLOW}[WARN]" + +function get_npu_model(){ + if command -v npu-smi &> /dev/null; then + echo "Ascend$(npu-smi info -t board -i 0 -c 0 | awk '/Chip Name/ {print $NF}')" + return 1 + else + echo "Ascend910B1" + return 0 + fi +} SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) CMAKE_SOURCE_DIR=$(realpath "$SCRIPT_DIR/..") @@ -35,38 +49,57 @@ function show_help() { echo " --clean Clean build directories" echo " --debug Build in debug mode" echo " --msdebug Enable msdebug support" + echo " --simulator Compile example in simulator mode" echo " --enable_msprof Enable msprofiling" echo " -D