diff --git a/cmake/func.cmake b/cmake/func.cmake index 1053d9fbb22bf82648e1f0a5ffb5bd61c30e9284..2384e9a719fe39074c8f0fca46f1cab6f10aec7c 100644 --- a/cmake/func.cmake +++ b/cmake/func.cmake @@ -217,8 +217,8 @@ function(add_bin_compile_target) COMMAND export HI_PYTHON=${ASCEND_PYTHON_EXECUTABLE} && export ASCEND_CUSTOM_OPP_PATH=${ADS_PATH}/packages/vendors/${vendor_name} - && bash ${bin_script} ${BINCMP_OUT_DIR}/src/${op_type}.py - ${BINCMP_KERNEL_DIR}/${BINCMP_COMPUTE_UNIT}/${op_file} + && bash ${CMAKE_SOURCE_DIR}/scripts/retry.sh \"bash ${bin_script} ${BINCMP_OUT_DIR}/src/${op_type}.py +${BINCMP_KERNEL_DIR}/${BINCMP_COMPUTE_UNIT}/${op_file}\" WORKING_DIRECTORY ${BINCMP_OUT_DIR}) add_dependencies(${BINCMP_TARGET}_${op_file}_${op_index} ${BINCMP_TARGET} ${BINCMP_TARGET}_${op_file}_copy) diff --git a/scripts/retry.sh b/scripts/retry.sh new file mode 100644 index 0000000000000000000000000000000000000000..bb4136397f07cf7e0c97a65ac82c45816b98d19a --- /dev/null +++ b/scripts/retry.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +MAX_RETRIES=3 +RETRY_DELAY=2 +COUNTER=0 + +while [ $COUNTER -lt $MAX_RETRIES ]; do + eval "$@" && break + COUNTER=$((COUNTER+1)) + if [ $COUNTER -lt $MAX_RETRIES ]; then + echo "Command failed. Retrying in $RETRY_DELAY seconds..." + sleep $RETRY_DELAY + else + echo "Command failed after $COUNTER attempts." + exit 1 + fi +done +