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 2.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/usr/bin/env bash
  2. set -e
  3. OS=$(uname -s)
  4. NINJA_CMD=""
  5. NINJA_BASE="ninja"
  6. if [[ $OS =~ "NT" ]]; then
  7. echo "BUILD in NT ..."
  8. NINJA_BASE="Ninja"
  9. fi
  10. READLINK=readlink
  11. if [ $OS = "Darwin" ];then
  12. READLINK=greadlink
  13. fi
  14. PROJECT_DIR=$(dirname "${BASH_SOURCE[0]}")/../../../
  15. function cd_real_build_dir() {
  16. REAL_DIR=$($READLINK -f $1)
  17. echo "may alias dir: $1"
  18. echo "cd real build dir: ${REAL_DIR}"
  19. cd ${REAL_DIR}
  20. }
  21. function build_flatc() {
  22. BUILD_DIR=$1/build_dir/host_flatc/build
  23. INSTALL_DIR=$BUILD_DIR/../install
  24. REMOVE_OLD_BUILD=$2
  25. if [ $REMOVE_OLD_BUILD = "true" ]; then
  26. echo "remove old build/install dir"
  27. rm -rf $INSTALL_DIR
  28. rm -rf $BUILD_DIR
  29. else
  30. echo "strip remove old build"
  31. fi
  32. mkdir -p $BUILD_DIR
  33. mkdir -p $INSTALL_DIR
  34. cd_real_build_dir $BUILD_DIR
  35. cmake -G Ninja \
  36. -DCMAKE_BUILD_TYPE=Release \
  37. -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
  38. -DFLATBUFFERS_BUILD_TESTS=OFF \
  39. -DFLATBUFFERS_BUILD_FLATHASH=OFF \
  40. -DFLATBUFFERS_BUILD_FLATLIB=OFF \
  41. -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF \
  42. ${PROJECT_DIR}/third_party/flatbuffers
  43. ${NINJA_BASE} all
  44. ${NINJA_BASE} install/strip
  45. }
  46. function try_remove_old_build() {
  47. REMOVE_OLD_BUILD=$1
  48. echo $REMOVE_OLD_BUILD
  49. BUILD_DIR=$2
  50. INSTALL_DIR=$3
  51. if [ $REMOVE_OLD_BUILD = "true" ]; then
  52. echo "remove old build/install dir"
  53. rm -rf ${INSTALL_DIR}
  54. # compat install is relative path for BUILD_DIR
  55. if [ -d ${BUILD_DIR} ]; then
  56. cd ${BUILD_DIR}
  57. rm -rf ${INSTALL_DIR}
  58. cd -
  59. fi
  60. rm -rf ${BUILD_DIR}
  61. else
  62. echo "strip remove old build"
  63. fi
  64. }
  65. function config_ninja_target_cmd() {
  66. if [ $# -eq 4 ]; then
  67. _NINJA_VERBOSE=$1
  68. _BUILD_DEVELOP=$2
  69. _NINJA_TARGET=$3
  70. _NINJA_DRY_RUN=$4
  71. else
  72. echo "err call config_ninja_target_cmd"
  73. exit -1
  74. fi
  75. if [ -z "${_NINJA_TARGET}" ]; then
  76. NINJA_CMD="${NINJA_BASE} all"
  77. elif [[ ${_NINJA_TARGET} =~ "install" ]]; then
  78. NINJA_CMD="${NINJA_BASE} all && ${NINJA_BASE} ${_NINJA_TARGET}"
  79. else
  80. NINJA_CMD="${NINJA_BASE} ${_NINJA_TARGET}"
  81. fi
  82. if [ ${_NINJA_DRY_RUN} = "ON" ]; then
  83. NINJA_CMD="${NINJA_CMD} -d explain -n"
  84. else
  85. if [ ${_NINJA_VERBOSE} = "ON" ]; then
  86. NINJA_CMD="${NINJA_CMD} -d explain -v"
  87. fi
  88. if [ ${_BUILD_DEVELOP} = "ON" ]; then
  89. echo "add develop target"
  90. NINJA_CMD="${NINJA_CMD} && ${NINJA_BASE} develop"
  91. fi
  92. fi
  93. echo "build ${NINJA_BASE} target command: ${NINJA_CMD}"
  94. }

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