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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. NINJA_CMD="${NINJA_BASE} all"
  61. if [ $# -eq 4 ]; then
  62. _NINJA_VERBOSE=$1
  63. _BUILD_DEVELOP=$2
  64. _INSTALL_ALL_TARGET=$3
  65. _NINJA_DRY_RUN=$4
  66. else
  67. echo "err call config_ninja_target_cmd"
  68. exit -1
  69. fi
  70. if [ ${_NINJA_DRY_RUN} = "ON" ]; then
  71. NINJA_CMD="${NINJA_CMD} -d explain -n"
  72. else
  73. if [ ${_NINJA_VERBOSE} = "ON" ]; then
  74. NINJA_CMD="${NINJA_CMD} -d explain -v"
  75. fi
  76. if [ ${_BUILD_DEVELOP} = "ON" ]; then
  77. echo "add develop target"
  78. NINJA_CMD="${NINJA_CMD} && ${NINJA_BASE} develop"
  79. fi
  80. if [ -n "${_INSTALL_ALL_TARGET}" ]; then
  81. NINJA_CMD="${NINJA_CMD} && ${NINJA_BASE} ${_INSTALL_ALL_TARGET}"
  82. fi
  83. fi
  84. echo "build ${NINJA_BASE} target command: ${NINJA_CMD}"
  85. }

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