• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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