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.

utils.sh 3.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/usr/bin/env bash
  2. set -e
  3. OS=$(uname -s)
  4. function ninja_dry_run_and_check_increment() {
  5. if [ $# -eq 3 ]; then
  6. _BUILD_SHELL=$1
  7. _BUILD_FLAGS="$2 -n"
  8. _INCREMENT_KEY_WORDS=$3
  9. else
  10. echo "err call ninja_dry_run_and_check_increment"
  11. exit -1
  12. fi
  13. ${_BUILD_SHELL} ${_BUILD_FLAGS} 2>&1 | tee dry_run.log
  14. DIRTY_LOG=`cat dry_run.log`
  15. if [[ "${DIRTY_LOG}" =~ ${_INCREMENT_KEY_WORDS} ]]; then
  16. echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  17. echo "python3 switch increment build failed, some MR make a wrong CMakeLists.txt depends"
  18. echo "or build env can not find default python3 in PATH env"
  19. echo "please refs for PYTHON3_EXECUTABLE_WITHOUT_VERSION define at SRC_ROOT/CMakeLists.txt"
  20. echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  21. exit -1
  22. fi
  23. }
  24. PYTHON_API_INCLUDES=""
  25. function check_build_ninja_python_api() {
  26. INCLUDE_KEYWORD=""
  27. IS_MINOR_HIT=FALSE
  28. if [ $# -eq 1 ]; then
  29. ver=$1
  30. echo "org args: ${ver}"
  31. if [[ $OS =~ "NT" ]]; then
  32. INCLUDE_KEYWORD="${ver}\\\\include"
  33. PYTHON_API_INCLUDES="3.5.4\\\\include 3.6.8\\\\include 3.7.7\\\\include 3.8.3\\\\include"
  34. elif [[ $OS =~ "Linux" ]]; then
  35. INCLUDE_KEYWORD="include/python3.${ver:1:1}"
  36. PYTHON_API_INCLUDES="include/python3.5 include/python3.6 include/python3.7 include/python3.8"
  37. elif [[ $OS =~ "Darwin" ]]; then
  38. INCLUDE_KEYWORD="include/python3.${ver:2:1}"
  39. PYTHON_API_INCLUDES="include/python3.5 include/python3.6 include/python3.7 include/python3.8"
  40. else
  41. echo "unknown OS: ${OS}"
  42. exit -1
  43. fi
  44. else
  45. echo "err call check_build_ninja_python_api"
  46. exit -1
  47. fi
  48. echo "try check python INCLUDE_KEYWORD: ${INCLUDE_KEYWORD} is invalid in ninja.build or not"
  49. NINJA_BUILD=`cat build.ninja`
  50. for PYTHON_API_INCLUDE in ${PYTHON_API_INCLUDES}
  51. do
  52. echo "check PYTHON_API_INCLUDE vs INCLUDE_KEYWORD : (${PYTHON_API_INCLUDE} : ${INCLUDE_KEYWORD})"
  53. if [ ${PYTHON_API_INCLUDE} = ${INCLUDE_KEYWORD} ]; then
  54. if [[ "${NINJA_BUILD}" =~ ${PYTHON_API_INCLUDE} ]]; then
  55. echo "hit INCLUDE_KEYWORD: ${INCLUDE_KEYWORD} in build.ninja"
  56. IS_MINOR_HIT="TRUE"
  57. else
  58. echo "Err happened can not find INCLUDE_KEYWORD: ${INCLUDE_KEYWORD} in build.ninja"
  59. exit -1
  60. fi
  61. else
  62. if [[ "${NINJA_BUILD}" =~ ${PYTHON_API_INCLUDE} ]]; then
  63. echo "Err happened: find PYTHON_API_INCLUDE: ${PYTHON_API_INCLUDE} in build.ninja"
  64. echo "But now INCLUDE_KEYWORD: ${INCLUDE_KEYWORD}"
  65. exit -1
  66. fi
  67. fi
  68. done
  69. if [ ${IS_MINOR_HIT} = "FALSE" ]; then
  70. echo "Err happened, can not hit any MINOR api in ninja.build"
  71. exit -1
  72. fi
  73. }

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台