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.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 ${BUILD_DIR}
  54. rm -rf ${INSTALL_DIR}
  55. else
  56. echo "strip remove old build"
  57. fi
  58. }
  59. function config_ninja_target_cmd() {
  60. if [ $# -eq 4 ]; then
  61. _NINJA_VERBOSE=$1
  62. _BUILD_DEVELOP=$2
  63. _NINJA_TARGET=$3
  64. _NINJA_DRY_RUN=$4
  65. else
  66. echo "err call config_ninja_target_cmd"
  67. exit -1
  68. fi
  69. if [ -z "${_NINJA_TARGET}" ]; then
  70. NINJA_CMD="${NINJA_BASE} all"
  71. elif [[ ${_NINJA_TARGET} =~ "install" ]]; then
  72. NINJA_CMD="${NINJA_BASE} all && ${NINJA_BASE} ${_NINJA_TARGET}"
  73. else
  74. NINJA_CMD="${NINJA_BASE} ${_NINJA_TARGET}"
  75. fi
  76. if [ ${_NINJA_DRY_RUN} = "ON" ]; then
  77. NINJA_CMD="${NINJA_CMD} -d explain -n"
  78. else
  79. if [ ${_NINJA_VERBOSE} = "ON" ]; then
  80. NINJA_CMD="${NINJA_CMD} -d explain -v"
  81. fi
  82. if [ ${_BUILD_DEVELOP} = "ON" ]; then
  83. echo "add develop target"
  84. NINJA_CMD="${NINJA_CMD} && ${NINJA_BASE} develop"
  85. fi
  86. fi
  87. echo "build ${NINJA_BASE} target command: ${NINJA_CMD}"
  88. }

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