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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. function cd_real_build_dir() {
  15. REAL_DIR=$($READLINK -f $1)
  16. echo "may alias dir: $1"
  17. echo "cd real build dir: ${REAL_DIR}"
  18. cd ${REAL_DIR}
  19. }
  20. function build_flatc() {
  21. BUILD_DIR=$1/build_dir/host_flatc/build
  22. INSTALL_DIR=$BUILD_DIR/../install
  23. REMOVE_OLD_BUILD=$2
  24. if [ $REMOVE_OLD_BUILD = "true" ]; then
  25. echo "remove old build/install dir"
  26. rm -rf $INSTALL_DIR
  27. rm -rf $BUILD_DIR
  28. else
  29. echo "strip remove old build"
  30. fi
  31. mkdir -p $BUILD_DIR
  32. mkdir -p $INSTALL_DIR
  33. cd_real_build_dir $BUILD_DIR
  34. cmake -G Ninja \
  35. -DCMAKE_BUILD_TYPE=Release \
  36. -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
  37. -DFLATBUFFERS_BUILD_TESTS=OFF \
  38. -DFLATBUFFERS_BUILD_FLATHASH=OFF \
  39. -DFLATBUFFERS_BUILD_FLATLIB=OFF \
  40. -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF \
  41. $SRC_DIR/third_party/flatbuffers
  42. ${NINJA_BASE} all
  43. ${NINJA_BASE} install/strip
  44. }
  45. function try_remove_old_build() {
  46. REMOVE_OLD_BUILD=$1
  47. echo $REMOVE_OLD_BUILD
  48. BUILD_DIR=$2
  49. INSTALL_DIR=$3
  50. if [ $REMOVE_OLD_BUILD = "true" ]; then
  51. echo "remove old build/install dir"
  52. rm -rf ${BUILD_DIR}
  53. rm -rf ${INSTALL_DIR}
  54. else
  55. echo "strip remove old build"
  56. fi
  57. }
  58. function config_ninja_target_cmd() {
  59. NINJA_CMD="${NINJA_BASE} all"
  60. if [ $# -eq 4 ]; then
  61. _NINJA_VERBOSE=$1
  62. _BUILD_DEVELOP=$2
  63. _INSTALL_ALL_TARGET=$3
  64. _NINJA_DRY_RUN=$4
  65. else
  66. echo "err call config_ninja_target_cmd"
  67. exit -1
  68. fi
  69. if [ ${_NINJA_DRY_RUN} = "ON" ]; then
  70. NINJA_CMD="${NINJA_CMD} -d explain -n"
  71. else
  72. if [ ${_NINJA_VERBOSE} = "ON" ]; then
  73. NINJA_CMD="${NINJA_CMD} -d explain -v"
  74. fi
  75. if [ ${_BUILD_DEVELOP} = "ON" ]; then
  76. echo "add develop target"
  77. NINJA_CMD="${NINJA_CMD} && ${NINJA_BASE} develop"
  78. fi
  79. if [ -n "${_INSTALL_ALL_TARGET}" ]; then
  80. NINJA_CMD="${NINJA_CMD} && ${NINJA_BASE} ${_INSTALL_ALL_TARGET}"
  81. fi
  82. fi
  83. echo "build ${NINJA_BASE} target command: ${NINJA_CMD}"
  84. }

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