diff --git a/build.sh b/build.sh index 02fac729ecf5380ed0d7e21de140b5236c972e61..36938e1a8ca9a6dd354f133c882612fb0c586326 100755 --- a/build.sh +++ b/build.sh @@ -50,8 +50,10 @@ checkopts() { ENABLE_TFADAPTER_UT="off" ENABLE_TFADAPTER_ST="off" ENABLE_CI_BUILD="off" + ENABLE_TFADAPTER_V2="on" + ENABLE_TFADAPTER_V1="on" # Process the options - while getopts 'hj:vuscg:' opt + while getopts 'hj:vusdDcg:' opt do case "${opt}" in h) usage @@ -59,6 +61,8 @@ checkopts() { j) THREAD_NUM=$OPTARG ;; v) VERBOSE="VERBOSE=1" ;; g) GCC_PREFIX=$OPTARG ;; + D) ENABLE_TFADAPTER_V2="off" ;; + d) ENABLE_TFADAPTER_V1="off" ;; u) ENABLE_TFADAPTER_UT="on" ;; s) ENABLE_TFADAPTER_ST="on" ;; c) ENABLE_CI_BUILD="on" ;; @@ -81,44 +85,58 @@ build_tfadapter() { if [[ "X$ENABLE_TFADAPTER_UT" = "Xon" ]]; then export OPEN_UT=1 fi - logging "Create build directory and build tfadapter" - cd "${BASE_PATH}" && ./configure - CMAKE_ARGS="-DENABLE_OPEN_SRC=True -DBUILD_PATH=$BUILD_PATH -DCMAKE_INSTALL_PREFIX=${RELEASE_PATH}" - if [[ "$GCC_PREFIX" != "" ]]; then - CMAKE_ARGS="$CMAKE_ARGS -DGCC_PREFIX=$GCC_PREFIX" - fi - if [[ "X$ENABLE_TFADAPTER_UT" = "Xon" ]]; then - CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TFADAPTER_UT=ON" - fi - if [[ "X$ENABLE_TFADAPTER_ST" = "Xon" ]]; then - CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TFADAPTER_ST=ON" - fi - logging "CMake Args: ${CMAKE_ARGS}" - - mk_dir "${CMAKE_PATH}" - cd "${CMAKE_PATH}" && cmake ${CMAKE_ARGS} ../.. - if [ 0 -ne $? ] - then - echo "execute command: cmake ${CMAKE_ARGS} .. failed." - return 1 + if [[ "X$ENABLE_TFADAPTER_V1" = "Xon" ]]; then + logging "Create build directory and build tfadapter" + cd "${BASE_PATH}" && ./configure + CMAKE_ARGS="-DENABLE_OPEN_SRC=True -DBUILD_PATH=$BUILD_PATH -DCMAKE_INSTALL_PREFIX=${RELEASE_PATH}" + if [[ "$GCC_PREFIX" != "" ]]; then + CMAKE_ARGS="$CMAKE_ARGS -DGCC_PREFIX=$GCC_PREFIX" + fi + if [[ "X$ENABLE_TFADAPTER_UT" = "Xon" ]]; then + CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TFADAPTER_UT=ON" + fi + if [[ "X$ENABLE_TFADAPTER_ST" = "Xon" ]]; then + CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TFADAPTER_ST=ON" + fi + logging "CMake Args: ${CMAKE_ARGS}" + + mk_dir "${CMAKE_PATH}" + cd "${CMAKE_PATH}" && cmake ${CMAKE_ARGS} ../.. + if [ 0 -ne $? ] + then + echo "execute command: cmake ${CMAKE_ARGS} .. failed." + return 1 + fi + + if [[ "X$ENABLE_TFADAPTER_UT" = "Xon" ]]; then + make tfadapter_utest ${VERBOSE} -j${THREAD_NUM} + logging "Build tfadapter utest success!" + return 0 + elif [[ "X$ENABLE_TFADAPTER_ST" = "Xon" ]]; then + make tfadapter_stest ${VERBOSE} -j${THREAD_NUM} + logging "Build tfadapter stest success!" + return 0 + else + make ${VERBOSE} -j${THREAD_NUM} + logging "tfadapter build success!" + fi fi - if [[ "X$ENABLE_TFADAPTER_UT" = "Xon" ]]; then - make tfadapter_utest ${VERBOSE} -j${THREAD_NUM} - logging "Build tfadapter utest success!" - elif [[ "X$ENABLE_TFADAPTER_ST" = "Xon" ]]; then - make tfadapter_stest ${VERBOSE} -j${THREAD_NUM} - logging "Build tfadapter stest success!" - else - make ${VERBOSE} -j${THREAD_NUM} - logging "tfadapter build success!" + + if [[ "X$ENABLE_TFADAPTER_V2" = "Xon" ]]; then + logging "start to build tf_adapter_2.x!" chmod +x "${BASE_PATH}/tf_adapter_2.x/CI_Build" - sh "${BASE_PATH}/tf_adapter_2.x/CI_Build" + sh -x "${BASE_PATH}/tf_adapter_2.x/CI_Build" fi } release_tfadapter() { logging "Create output directory" - cd ${CMAKE_PATH}/dist/python/dist && mkdir -p fwkplugin/bin && mv npu_bridge-*.whl fwkplugin/bin && mv "${BASE_PATH}/tf_adapter_2.x/build/dist/python/dist/npu_device-0.1-py3-none-any.whl" fwkplugin/bin && tar cfz "${RELEASE_TARGET}" * && mv "${RELEASE_TARGET}" "${RELEASE_PATH}" + cd ${CMAKE_PATH}/dist/python/dist + mkdir -p fwkplugin/bin && mv npu_bridge-*.whl fwkplugin/bin + if [[ "X$ENABLE_TFADAPTER_V2" = "Xon" ]]; then + mv "${BASE_PATH}/tf_adapter_2.x/build/dist/python/dist/npu_device-0.1-py3-none-any.whl" fwkplugin/bin + fi + tar cfz "${RELEASE_TARGET}" * && mv "${RELEASE_TARGET}" "${RELEASE_PATH}" } main() { @@ -131,49 +149,65 @@ main() { if [[ "X$ENABLE_TFADAPTER_UT" = "Xoff" ]] && [[ "X$ENABLE_TFADAPTER_ST" = "Xoff" ]] && [[ "X$ENABLE_CI_BUILD" = "Xon" ]]; then release_tfadapter fi + logging "######################1" if [[ "X$ENABLE_TFADAPTER_UT" = "Xon" ]]; then cd ${BASE_PATH} export ASCEND_OPP_PATH=${BASE_PATH}/tf_adapter/tests/depends/support_json export PRINT_MODEL=1 export LD_LIBRARY_PATH=${CMAKE_PATH}/tf_adapter/tests/depends/aoe/:$LD_LIBRARY_PATH - RUN_TEST_CASE=${CMAKE_PATH}/tf_adapter/tests/ut/tfadapter_utest && unset ENABLE_MBUF_ALLOCATOR \ - && ${RUN_TEST_CASE} && export ENABLE_MBUF_ALLOCATOR=1 && ${RUN_TEST_CASE} "--gtest_filter=MbufAllocatorTest.EnableMbufAllocatorTest" - if [[ "$?" -ne 0 ]]; then - echo "!!! UT FAILED, PLEASE CHECK YOUR CHANGES !!!" - echo -e "\033[31m${RUN_TEST_CASE}\033[0m" - exit 1; + if [[ "X$ENABLE_TFADAPTER_V1" = "Xon" ]]; then + RUN_TEST_CASE=${CMAKE_PATH}/tf_adapter/tests/ut/tfadapter_utest && unset ENABLE_MBUF_ALLOCATOR \ + && ${RUN_TEST_CASE} && export ENABLE_MBUF_ALLOCATOR=1 && ${RUN_TEST_CASE} "--gtest_filter=MbufAllocatorTest.EnableMbufAllocatorTest" + if [[ "$?" -ne 0 ]]; then + echo "!!! UT FAILED, PLEASE CHECK YOUR CHANGES !!!" + echo -e "\033[31m${RUN_TEST_CASE}\033[0m" + exit 1; + fi + logging "Generating coverage statistics, please wait..." + rm -rf ${BASE_PATH}/coverage + mkdir ${BASE_PATH}/coverage + lcov -c -d ${CMAKE_PATH}/tf_adapter/tests/ut/ -o coverage/tmp.info + lcov -r coverage/tmp.info '*/tests/*' '*/nlohmann_json-src/*' '*/tensorflow-src/*' \ + '*/inc/*' '*/output/*' '*/usr/*' '*/Eigen/*' '*/absl/*' '*/google/*' '*/tensorflow/core/*' \ + -o adapter1_coverage.info + fi + + logging "######################2" + if [[ "X$ENABLE_TFADAPTER_V2" = "Xon" ]]; then + logging "start to exe tf_adapter_2.x UT!" + bash ${BASE_PATH}/tf_adapter_2.x/tests/CI_Build adapter2_ut + lcov -o coverage/coverage.info -a ${BASE_PATH}/tf_adapter_2.x/tests/build/ut/ut.coverage -a adapter1_coverage.info fi - logging "Generating coverage statistics, please wait..." - rm -rf ${BASE_PATH}/coverage - mkdir ${BASE_PATH}/coverage - lcov -c -d ${CMAKE_PATH}/tf_adapter/tests/ut/ -o coverage/tmp.info - lcov -r coverage/tmp.info '*/tests/*' '*/nlohmann_json-src/*' '*/tensorflow-src/*' \ - '*/inc/*' '*/output/*' '*/usr/*' '*/Eigen/*' '*/absl/*' '*/google/*' '*/tensorflow/core/*' \ - -o adapter1_coverage.info - bash ${BASE_PATH}/tf_adapter_2.x/tests/CI_Build adapter2_ut - lcov -o coverage/coverage.info -a ${BASE_PATH}/tf_adapter_2.x/tests/build/ut/ut.coverage -a adapter1_coverage.info fi + if [[ "X$ENABLE_TFADAPTER_ST" = "Xon" ]]; then cd ${BASE_PATH} export ASCEND_OPP_PATH=${BASE_PATH}/tf_adapter/tests/depends/support_json export PRINT_MODEL=1 export LD_LIBRARY_PATH=${CMAKE_PATH}/tf_adapter/tests/depends/aoe/:$LD_LIBRARY_PATH - RUN_TEST_CASE=${CMAKE_PATH}/tf_adapter/tests/st/tfadapter_stest && unset ENABLE_MBUF_ALLOCATOR \ - && ${RUN_TEST_CASE} && export ENABLE_MBUF_ALLOCATOR=1 && ${RUN_TEST_CASE} "--gtest_filter=MbufAllocatorTest.EnableMbufAllocatorTest" - if [[ "$?" -ne 0 ]]; then - echo "!!! ST FAILED, PLEASE CHECK YOUR CHANGES !!!" - echo -e "\033[31m${RUN_TEST_CASE}\033[0m" - exit 1; + + if [[ "X$ENABLE_TFADAPTER_V1" = "Xon" ]]; then + RUN_TEST_CASE=${CMAKE_PATH}/tf_adapter/tests/st/tfadapter_stest && unset ENABLE_MBUF_ALLOCATOR \ + && ${RUN_TEST_CASE} && export ENABLE_MBUF_ALLOCATOR=1 && ${RUN_TEST_CASE} "--gtest_filter=MbufAllocatorTest.EnableMbufAllocatorTest" + if [[ "$?" -ne 0 ]]; then + echo "!!! ST FAILED, PLEASE CHECK YOUR CHANGES !!!" + echo -e "\033[31m${RUN_TEST_CASE}\033[0m" + exit 1; + fi + logging "Generating coverage statistics, please wait..." + rm -rf ${BASE_PATH}/coverage + mkdir ${BASE_PATH}/coverage + lcov -c -d ${CMAKE_PATH}/tf_adapter/tests/st/ -o coverage/tmp.info + lcov -r coverage/tmp.info '*/tests/*' '*/nlohmann_json-src/*' '*/tensorflow-src/*' \ + '*/inc/*' '*/output/*' '*/usr/*' '*/Eigen/*' '*/absl/*' '*/google/*' '*/tensorflow/core/*' \ + -o adapter1_coverage.info + fi + + if [[ "X$ENABLE_TFADAPTER_V2" = "Xon" ]]; then + logging "start to exe tf_adapter_2.x ST!" + bash ${BASE_PATH}/tf_adapter_2.x/tests/CI_Build adapter2_st + lcov -o coverage/coverage.info -a ${BASE_PATH}/tf_adapter_2.x/tests/build/st/st.coverage -a adapter1_coverage.info fi - logging "Generating coverage statistics, please wait..." - rm -rf ${BASE_PATH}/coverage - mkdir ${BASE_PATH}/coverage - lcov -c -d ${CMAKE_PATH}/tf_adapter/tests/st/ -o coverage/tmp.info - lcov -r coverage/tmp.info '*/tests/*' '*/nlohmann_json-src/*' '*/tensorflow-src/*' \ - '*/inc/*' '*/output/*' '*/usr/*' '*/Eigen/*' '*/absl/*' '*/google/*' '*/tensorflow/core/*' \ - -o adapter1_coverage.info - bash ${BASE_PATH}/tf_adapter_2.x/tests/CI_Build adapter2_st - lcov -o coverage/coverage.info -a ${BASE_PATH}/tf_adapter_2.x/tests/build/st/st.coverage -a adapter1_coverage.info fi logging "---------------- tfadapter build finished ----------------" }