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.

build_wheel.sh 4.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/bin/bash -e
  2. CWD=$(dirname $0)
  3. BASEDIR=$(readlink -f ${CWD}/../../..)
  4. OUTPUTDIR=$(readlink -f ${CWD}/output)
  5. USERID=$(id -u)
  6. TMPFS_ARGS="--tmpfs /tmp:exec"
  7. BUILD_WHL_CPU_ONLY=${BUILD_WHL_CPU_ONLY}
  8. if [[ -z ${BUILD_WHL_CPU_ONLY} ]]
  9. then
  10. BUILD_WHL_CPU_ONLY="OFF"
  11. fi
  12. echo ${BASEDIR}
  13. pushd ${BASEDIR}/third_party >/dev/null
  14. ./prepare.sh
  15. popd >/dev/null
  16. cd ${CWD}
  17. mkdir -p ${OUTPUTDIR}
  18. if [ ${BUILD_WHL_CPU_ONLY} = "OFF" ]; then
  19. if [[ -z ${CUDA_ROOT_DIR} ]]; then
  20. echo "Environment variable CUDA_ROOT_DIR not set."
  21. exit -1
  22. fi
  23. if [[ -z ${CUDNN_ROOT_DIR} ]]; then
  24. echo "Environment variable CUDNN_ROOT_DIR not set."
  25. exit -1
  26. fi
  27. if [[ -z ${TENSORRT_ROOT_DIR} ]]; then
  28. echo "Environment variable TENSORRT_ROOT_DIR not set."
  29. exit -1
  30. fi
  31. ## YOU SHOULD MODIFY CUDA VERSION AS BELOW WHEN UPGRADE
  32. REQUIR_CUDA_VERSION="10010"
  33. REQUIR_CUDNN_VERSION="7.6.3"
  34. REQUIR_TENSORRT_VERSION="6.0.1.5"
  35. CUDA_ROOT_DIR_=${CUDA_ROOT_DIR%*/}
  36. CUDNN_ROOT_DIR_=${CUDNN_ROOT_DIR%*/}
  37. TENSORRT_ROOT_DIR_=${TENSORRT_ROOT_DIR%*/}
  38. CUDA_VERSION_PATH=${CUDA_ROOT_DIR_}/include/cuda.h
  39. CUDNN_VERSION_PATH=${CUDNN_ROOT_DIR_}/include/cudnn.h
  40. TENSORRT_VERSION_PATH=${TENSORRT_ROOT_DIR_}/include/NvInferVersion.h
  41. if [ ! -e $CUDA_VERSION_PATH ] ; then
  42. echo file $CUDA_VERSION_PATH is not exist
  43. echo please check the Environment must use CUDA-10.1 NO.$REQUIR_CUDA_VERSION
  44. exit -1
  45. fi
  46. if [ ! -e $CUDNN_VERSION_PATH ] ; then
  47. echo file $CUDNN_VERSION_PATH is not exist
  48. echo please check the Environment must use CUDNN-V$REQUIR_CUDNN_VERSION
  49. exit -1
  50. fi
  51. if [ ! -e $TENSORRT_VERSION_PATH ] ; then
  52. echo file $TENSORRT_VERSION_PATH is not exist
  53. echo please check the Environment must use TensorRT-$REQUIR_TENSORRT_VERSION
  54. exit -1
  55. fi
  56. CUDA_VERSION_CONTEXT=$(head -85 ${CUDA_VERSION_PATH})
  57. CUDNN_VERSION_CONTEXT=$(head -62 ${CUDNN_VERSION_PATH})
  58. TENSORRT_VERSION_CONTEXT=$(tail -12 ${TENSORRT_VERSION_PATH})
  59. CUDA_API_VERSION=$(echo $CUDA_VERSION_CONTEXT | grep -Eo "define __CUDA_API_VERSION * +([0-9]+)")
  60. CUDA_VERSION=${CUDA_API_VERSION:0-5}
  61. echo CUDA_VERSION:$CUDA_VERSION
  62. CUDNN_VERSION_MAJOR=$(echo $CUDNN_VERSION_CONTEXT | grep -Eo "define CUDNN_MAJOR * +([0-9]+)")
  63. CUDNN_VERSION_MINOR=$(echo $CUDNN_VERSION_CONTEXT | grep -Eo "define CUDNN_MINOR * +([0-9]+)")
  64. CUDNN_VERSION_PATCH=$(echo $CUDNN_VERSION_CONTEXT | grep -Eo "define CUDNN_PATCHLEVEL * +([0-9]+)")
  65. CUDNN_VERSION=${CUDNN_VERSION_MAJOR:0-1}.${CUDNN_VERSION_MINOR:0-1}.${CUDNN_VERSION_PATCH:0-1}
  66. echo CUDNN_VERSION:$CUDNN_VERSION
  67. TENSORRT_VERSION_MAJOR=$(echo $TENSORRT_VERSION_CONTEXT | grep -Eo "NV_TENSORRT_MAJOR * +([0-9]+)")
  68. TENSORRT_VERSION_MINOR=$(echo $TENSORRT_VERSION_CONTEXT | grep -Eo "NV_TENSORRT_MINOR * +([0-9]+)")
  69. TENSORRT_VERSION_PATCH=$(echo $TENSORRT_VERSION_CONTEXT | grep -Eo "NV_TENSORRT_PATCH * +([0-9]+)")
  70. TENSORRT_VERSION_BUILD=$(echo $TENSORRT_VERSION_CONTEXT | grep -Eo "NV_TENSORRT_BUILD * +([0-9]+)")
  71. TENSORRT_VERSION=${TENSORRT_VERSION_MAJOR:0-1}.${TENSORRT_VERSION_MINOR:0-1}.${TENSORRT_VERSION_PATCH:0-1}.${TENSORRT_VERSION_BUILD:0-1}
  72. echo TENSORRT_VERSION:$TENSORRT_VERSION
  73. if [ $CUDA_VERSION != $REQUIR_CUDA_VERSION ] ; then
  74. echo please check the Environment must use CUDA-10.1 NO.$REQUIR_CUDA_VERSION
  75. exit -1
  76. fi
  77. if [ $CUDNN_VERSION != $REQUIR_CUDNN_VERSION ] ; then
  78. echo please check the Environment must use CUDNN-V$REQUIR_CUDNN_VERSION
  79. exit -1
  80. fi
  81. if [ $TENSORRT_VERSION != $REQUIR_TENSORRT_VERSION ] ; then
  82. echo please check the Environment must use TENSORRT-$REQUIR_TENSORRT_VERSION
  83. exit -1
  84. fi
  85. fi
  86. docker run -it --rm $TMPFS_ARGS -e UID=${USERID} -e LOCAL_VERSION=${LOCAL_VERSION} -e BUILD_WHL_CPU_ONLY=${BUILD_WHL_CPU_ONLY} -e ALL_PYTHON="${ALL_PYTHON}" -v ${CUDA_ROOT_DIR}:/usr/local/cuda -v ${CUDNN_ROOT_DIR}:/opt/cudnn -v ${TENSORRT_ROOT_DIR}:/opt/tensorrt -v ${BASEDIR}:/home/code -v ${OUTPUTDIR}:/home/output:rw env_manylinux2010:latest /home/code/scripts/whl/manylinux2010/do_build.sh

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