1#!/bin/bash 2 3# Usage: 4# Command: sh run_st.sh -p ascend -c ascend910 5# Options: 6# -p: platform type(ascend, gpu, all) 7# -c: driver version(cuda-10.1, cuda-11.1 ascend910, ascend310) 8# -l: testcase level(level0, level1, level2, level3) 9# -r: testcase root path 10 11set -e 12 13# Check parameter 14# bool_empty: whether the parameter is allowed to be empty. Default: true 15function CHECK_PARAMETER() { 16 local current_param=${1} 17 local param_name=${2} 18 local param_list=${3} 19 local bool_empty=${4:-"true"} 20 local flag_check=1 21 local param="" 22 23 # If in the parameter list 24 for param in ${param_list//,/ }; do 25 if [ "${current_param}" = "${param}" ]; then 26 flag_check=0 27 break 28 fi 29 done 30 31 # If empty 32 if [ "${bool_empty}" = "true" ] && [ -z "${current_param}" ]; then 33 flag_check=0 34 fi 35 36 # Check result 37 if [ "${flag_check}" = "1" ];then 38 echo "Input parameter of ${param_name} is invalid. (Value: ${param_list})" 39 exit 1 40 fi 41} 42 43######## 44# Init # 45######## 46# Global parameter 47CURR_DIR=$(dirname "${BASH_SOURCE-$0}") 48CURR_DIR=$(cd -P "${CURR_DIR}"; pwd -P) 49CONFIG_PATH="${CURR_DIR}/config" 50TESTCASE_LEVEL='level0' 51TESTCASE_ROOT="${CURR_DIR}/../" 52 53# Get input parameter 54while getopts ':p:c:l:r:' opt; do 55 case "${opt}" in 56 p) 57 PLATFORM_TYPE=${OPTARG} 58 ;; 59 c) 60 DRIVER_VERSION=${OPTARG} 61 ;; 62 l) 63 TESTCASE_LEVEL=${OPTARG} 64 ;; 65 r) 66 TESTCASE_ROOT=${OPTARG} 67 ;; 68 *) 69 echo "[ERROR] Unknown option ${opt}." 70 exit 1 71 ;; 72 esac 73done 74 75# Check parameter 76CHECK_PARAMETER "${PLATFORM_TYPE}" "platform_type" "ascend, gpu, all" "false" 77 78########## 79# Config # 80########## 81ENV_TYPE="ASCEND_ARM_EULEROS" 82 83# Set config(case_env_config.yaml) 84cat ${CONFIG_PATH}/case_env_config_template.yaml|grep -A 8 "all_case_type" > ${CONFIG_PATH}/case_env_config.yaml 85echo -e "\ncase_type:" >> ${CONFIG_PATH}/case_env_config.yaml 86if [ "${PLATFORM_TYPE}" = "ascend" ] || [ "${PLATFORM_TYPE}" = "all" ]; then 87 ENV_TYPE="ASCEND_ARM_EULEROS" 88 echo -e " platform_arm_ascend_training: ASCEND_ARM_EULEROS" >> ${CONFIG_PATH}/case_env_config.yaml 89elif [ "${PLATFORM_TYPE}" = "ascend910b" ] || [ "${PLATFORM_TYPE}" = "all" ]; then 90 ENV_TYPE="ASCEND_ARM_EULEROS_910B" 91 echo -e " platform_arm_ascend910b_training: ASCEND_ARM_EULEROS_910B" >> ${CONFIG_PATH}/case_env_config.yaml 92elif [ "${PLATFORM_TYPE}" = "gpu" ] || [ "${PLATFORM_TYPE}" = "all" ]; then 93 if [ "${DRIVER_VERSION}" = "cuda-10.1" ]; then 94 ENV_TYPE="GPU_X86_UBUNTU_CUDA10" 95 echo -e " platform_x86_gpu_training: GPU_X86_UBUNTU_CUDA10" >> ${CONFIG_PATH}/case_env_config.yaml 96 else 97 ENV_TYPE="GPU_X86_UBUNTU_CUDA11" 98 echo -e " platform_x86_gpu_training: GPU_X86_UBUNTU_CUDA11" >> ${CONFIG_PATH}/case_env_config.yaml 99 fi 100fi 101 102 103################# 104# Run testcases # 105################# 106# Get parameter 107parameter_list="--case_root ${TESTCASE_ROOT} --filter_keyword ${TESTCASE_LEVEL}" 108 109# Run testcase 110cd ${CURR_DIR} 111python3 -u run_st.py ${parameter_list} --env_config_file ${CONFIG_PATH}/env_config.yaml \ 112 --case_env_config_path ${CONFIG_PATH}/case_env_config.yaml --env_type $ENV_TYPE 113