diff --git a/build.sh b/build.sh index 2d8a714a02..cc48a39cf1 100755 --- a/build.sh +++ b/build.sh @@ -23,8 +23,8 @@ usage() { echo "Usage:" echo "bash build.sh [-d] [-r] [-v] [-c on|off] [-t on|off] [-g on|off] [-h] [-b ge] [-m infer|train] \\" - echo " [-a on|off] [-p on|off] [-i] [-L] [-R] [-D on|off] [-j[n]] [-e gpu|ascend|cpu|ascend310] \\" - echo " [-P on|off] [-z [on|off]] [-M on|off] [-V 9.2|10.1] [-I arm64|arm32|x86_64] [-K] \\" + echo " [-a on|off] [-p on|off] [-i] [-L] [-R] [-D on|off] [-j[n]] [-e gpu|ascend|cpu] \\" + echo " [-P on|off] [-z [on|off]] [-M on|off] [-V 9.2|10.1|310|910] [-I arm64|arm32|x86_64] [-K] \\" echo " [-B on|off] [-E] [-l on|off] [-n full|lite|off] [-T on|off] \\" echo " [-A [cpp|java|object-c] [-C on|off] [-o on|off] [-S on|off] [-k on|off] [-W sse|neon|avx|off] \\" echo "" @@ -45,13 +45,13 @@ usage() echo " -i Enable increment building, default off" echo " -L Enable load ANF-IR as input of 'infer', default off" echo " -j[n] Set the threads when building (Default: -j8)" - echo " -e Use cpu, gpu, ascend or ascend310" + echo " -e Use cpu, gpu, ascend" echo " -P Enable dump anf graph to file in ProtoBuffer format, default on" echo " -D Enable dumping of function graph ir, default on" echo " -z Compile dataset & mindrecord, default on" echo " -n Compile minddata with mindspore lite, available: off, lite, full, lite_cv, full mode in lite train and lite_cv, wrapper mode in lite predict" echo " -M Enable MPI and NCCL for GPU training, gpu default on" - echo " -V Specify the minimum required cuda version, default CUDA 10.1" + echo " -V Specify the device version, if -e gpu, default CUDA 10.1, if -e ascend, default Ascend 910" echo " -I Enable compiling mindspore lite for arm64, arm32 or x86_64, default disable mindspore lite compilation" echo " -K Compile with AKG, default on" echo " -s Enable serving module, default off" @@ -119,6 +119,8 @@ checkopts() ANDROID_STL="c++_shared" ENABLE_MAKE_CLEAN="off" X86_64_SIMD="off" + DEVICE_VERSION="" + DEVICE="" # Process the options while getopts 'drvj:c:t:hsb:a:g:p:ie:m:l:I:LRP:D:zM:V:K:swB:En:T:A:C:o:S:k:W:' opt @@ -216,40 +218,14 @@ checkopts() echo "enable make clean" ;; e) - if [[ "X$OPTARG" == "Xgpu" ]]; then - ENABLE_GPU="on" - ENABLE_CPU="on" - ENABLE_MPI="on" - elif [[ "X$OPTARG" == "Xd" || "X$OPTARG" == "Xascend" ]]; then - ENABLE_D="on" - ENABLE_CPU="on" - ENABLE_SERVING="on" - elif [[ "X$OPTARG" == "Xascend310" ]]; then - ENABLE_SERVING="on" - ENABLE_ACL="on" - elif [[ "X$OPTARG" == "Xcpu" ]]; then - ENABLE_CPU="on" - else - echo "Invalid value ${OPTARG} for option -e" - usage - exit 1 - fi + DEVICE=$OPTARG ;; M) check_on_off $OPTARG M ENABLE_MPI="$OPTARG" ;; V) - if [[ "X$OPTARG" != "X9.2" && "X$OPTARG" != "X10.1" ]]; then - echo "Invalid value ${OPTARG} for option -V" - usage - exit 1 - fi - if [[ "X$OPTARG" == "X9.2" ]]; then - echo "Unsupported CUDA version 9.2" - exit 1 - fi - CUDA_VERSION="$OPTARG" + DEVICE_VERSION=$OPTARG ;; P) check_on_off $OPTARG p @@ -382,6 +358,52 @@ build_exit() # Create building path build_mindspore() { + # Process build option + if [[ "X$DEVICE" == "Xgpu" ]]; then + ENABLE_GPU="on" + ENABLE_CPU="on" + ENABLE_MPI="on" + # version default 10.1 + if [[ "X$DEVICE_VERSION" == "X" ]]; then + DEVICE_VERSION=10.1 + fi + if [[ "X$DEVICE_VERSION" != "X9.2" && "X$DEVICE_VERSION" != "X10.1" ]]; then + echo "Invalid value ${DEVICE_VERSION} for option -V" + usage + exit 1 + fi + if [[ "X$DEVICE_VERSION" == "X9.2" ]]; then + echo "Unsupported CUDA version 9.2" + exit 1 + fi + CUDA_VERSION="$DEVICE_VERSION" + elif [[ "X$DEVICE" == "Xd" || "X$DEVICE" == "Xascend" ]]; then + # version default 910 + if [[ "X$DEVICE_VERSION" == "X" ]]; then + DEVICE_VERSION=910 + fi + if [[ "X$DEVICE_VERSION" == "X310" ]]; then + ENABLE_SERVING="on" + ENABLE_ACL="on" + elif [[ "X$DEVICE_VERSION" == "X910" ]]; then + ENABLE_D="on" + ENABLE_CPU="on" + ENABLE_SERVING="on" + else + echo "Invalid value ${DEVICE_VERSION} for option -V" + usage + exit 1 + fi + elif [[ "X$DEVICE" == "Xcpu" ]]; then + ENABLE_CPU="on" + elif [[ "X$DEVICE" == "X" ]]; then + : + else + echo "Invalid value ${DEVICE} for option -e" + usage + exit 1 + fi + echo "start build mindspore project." mkdir -pv "${BUILD_PATH}/mindspore" cd "${BUILD_PATH}/mindspore" @@ -670,6 +692,9 @@ build_lite() { get_version echo "============ Start building MindSpore Lite ${VERSION_STR} ============" + if [[ "X$DEVICE" == "Xgpu" ]]; then + ENABLE_GPU="on" + fi if [ "${ENABLE_GPU}" == "on" ] && [ "${LITE_PLATFORM}" == "arm64" ]; then echo "start build opencl" build_opencl