You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.sh 4.1 kB

5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #!/bin/bash
  2. set -e
  3. PROJECTPATH=$(cd "$(dirname $0)"; pwd)
  4. export BUILD_PATH="${PROJECTPATH}/build/"
  5. # print usage message
  6. usage()
  7. {
  8. echo "Usage:"
  9. echo " bash build.sh [-p {mindspore_shared_lib}] [-j[n]] [-d]"
  10. echo " bash build.sh [-e gpu|ascend|cpu|npu] [-V 9.2|10.1|310|910] [-j[n]] [-d] "
  11. echo " bash build.sh [-t on|off] [-j[n]] [-d]"
  12. echo ""
  13. echo "Options:"
  14. echo " -p MindSpore lib {mindspore_shared_lib} path."
  15. echo " -e Use cpu, gpu, npu or ascend"
  16. echo " -V Specify the device version, if -e gpu, default CUDA 10.1, if -e ascend, default Ascend 910"
  17. echo " -j[n] Set the threads when building (Default: -j8)"
  18. echo " -d Debug model"
  19. echo " -t Run testcases, default off."
  20. }
  21. # check value of input is 'on' or 'off'
  22. # usage: check_on_off arg_value arg_name
  23. check_on_off()
  24. {
  25. if [[ "X$1" != "Xon" && "X$1" != "Xoff" ]]; then
  26. echo "Invalid value $1 for option -$2"
  27. usage
  28. exit 1
  29. fi
  30. }
  31. # check and set options
  32. checkopts()
  33. {
  34. # Init default values of build options
  35. THREAD_NUM=8
  36. VERBOSE=""
  37. DEBUG_MODE="off"
  38. ENABLE_COVERAGE="off"
  39. ENABLE_ASAN="off"
  40. ENABLE_PYTHON="on"
  41. MS_WHL_LIB_PATH=""
  42. MS_BACKEND=""
  43. MS_VERSION=""
  44. RUN_TESTCASES="off"
  45. # Process the options
  46. while getopts 'dvc:j:a:p:e:V:t:' opt
  47. do
  48. LOW_OPTARG=$(echo ${OPTARG} | tr '[A-Z]' '[a-z]')
  49. case "${opt}" in
  50. e)
  51. echo "user opt: -e"${LOW_OPTARG}
  52. if [[ "$OPTARG" != "" ]]; then
  53. MS_BACKEND=$OPTARG
  54. fi
  55. ;;
  56. V)
  57. echo "user opt: -V"${LOW_OPTARG}
  58. if [[ "$OPTARG" != "" ]]; then
  59. MS_VERSION=$OPTARG
  60. fi
  61. ;;
  62. p)
  63. if [[ "$OPTARG" != "" ]]; then
  64. MS_WHL_LIB_PATH=$OPTARG
  65. else
  66. echo "Invalid value ${LOW_OPTARG} for option -e"
  67. usage
  68. exit 1
  69. fi
  70. ;;
  71. d)
  72. echo "user opt: -d"${LOW_OPTARG}
  73. DEBUG_MODE="on"
  74. ;;
  75. j)
  76. echo "user opt: -j"${LOW_OPTARG}
  77. THREAD_NUM=$OPTARG
  78. ;;
  79. v)
  80. echo "user opt: -v"${LOW_OPTARG}
  81. VERBOSE="VERBOSE=1"
  82. ;;
  83. c)
  84. check_on_off $OPTARG c
  85. ENABLE_COVERAGE="$OPTARG"
  86. ;;
  87. a)
  88. check_on_off $OPTARG a
  89. ENABLE_ASAN="$OPTARG"
  90. ;;
  91. t)
  92. echo "user opt: -t"${LOW_OPTARG}
  93. RUN_TESTCASES="$OPTARG"
  94. ;;
  95. *)
  96. echo "Unknown option ${opt}!"
  97. usage
  98. exit 1
  99. esac
  100. done
  101. }
  102. checkopts "$@"
  103. echo "---------------- MindSpore Serving: build start ----------------"
  104. mkdir -pv "${BUILD_PATH}/package/mindspore_serving/lib"
  105. if [[ "$MS_BACKEND" != "" ]]; then
  106. git submodule update --init third_party/mindspore
  107. fi
  108. # Create building path
  109. build_mindspore_serving()
  110. {
  111. echo "start build mindspore_serving project."
  112. mkdir -pv "${BUILD_PATH}/mindspore_serving"
  113. cd "${BUILD_PATH}/mindspore_serving"
  114. CMAKE_ARGS="-DDEBUG_MODE=$DEBUG_MODE -DBUILD_PATH=$BUILD_PATH"
  115. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_PYTHON=${ENABLE_PYTHON}"
  116. CMAKE_ARGS="${CMAKE_ARGS} -DTHREAD_NUM=${THREAD_NUM}"
  117. if [[ "X$ENABLE_COVERAGE" = "Xon" ]]; then
  118. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_COVERAGE=ON"
  119. fi
  120. if [[ "X$ENABLE_ASAN" = "Xon" ]]; then
  121. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_ASAN=ON"
  122. fi
  123. if [[ "$MS_BACKEND" != "" ]]; then
  124. CMAKE_ARGS="${CMAKE_ARGS} -DMS_BACKEND=${MS_BACKEND}"
  125. fi
  126. if [[ "$MS_WHL_LIB_PATH" != "" ]]; then
  127. CMAKE_ARGS="${CMAKE_ARGS} -DMS_WHL_LIB_PATH=${MS_WHL_LIB_PATH}"
  128. fi
  129. if [[ "$MS_VERSION" != "" ]]; then
  130. CMAKE_ARGS="${CMAKE_ARGS} -DMS_VERSION=${MS_VERSION}"
  131. fi
  132. if [[ "X$RUN_TESTCASES" = "Xon" ]]; then
  133. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TESTCASES=ON"
  134. fi
  135. echo "${CMAKE_ARGS}"
  136. cmake ${CMAKE_ARGS} ../..
  137. if [[ -n "$VERBOSE" ]]; then
  138. CMAKE_VERBOSE="--verbose"
  139. fi
  140. if [[ "X$RUN_TESTCASES" = "Xon" ]]; then
  141. cmake --build . ${CMAKE_VERBOSE} -j$THREAD_NUM
  142. else
  143. cmake --build . --target package ${CMAKE_VERBOSE} -j$THREAD_NUM
  144. fi
  145. echo "success building mindspore_serving project!"
  146. }
  147. build_mindspore_serving
  148. echo "---------------- mindspore_serving: build end ----------------"

A lightweight and high-performance service module that helps MindSpore developers efficiently deploy online inference services in the production environment.