From 9de627e01b0e1c0216da17a581bf18dc3ded77d0 Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Mon, 14 Jun 2021 10:26:44 -0700 Subject: [PATCH] PyTorch 1.8 builds Summary: Nightly builds to support PyTorch 1.8.0 and PyTorch 1.8.1. Reviewed By: patricklabatut Differential Revision: D29098081 fbshipit-source-id: fc6b36e919892ea41979a03e64a6fc8003528b78 --- .circleci/config.in.yml | 7 + .circleci/config.yml | 151 ++++++++++++++++++++ .circleci/regenerate.py | 2 + packaging/build_conda.sh | 2 +- packaging/linux_wheels/inside.sh | 11 +- packaging/pkg_helpers.bash | 17 ++- packaging/pytorch3d/conda_build_config.yaml | 24 ---- 7 files changed, 186 insertions(+), 28 deletions(-) delete mode 100644 packaging/pytorch3d/conda_build_config.yaml diff --git a/.circleci/config.in.yml b/.circleci/config.in.yml index 0e61fd40..9b0394d9 100644 --- a/.circleci/config.in.yml +++ b/.circleci/config.in.yml @@ -191,6 +191,7 @@ jobs: docker pull $DOCKER_IMAGE - run: name: Build and run tests + no_output_timeout: 20m command: | set -e @@ -245,6 +246,12 @@ workflows: python_version: "3.7" pytorch_version: '1.7.0' cu_version: "cu110" + - binary_linux_conda_cuda: + name: testrun_conda_cuda_py39_cu111_pyt181 + context: DOCKERHUB_TOKEN + python_version: "3.9" + pytorch_version: '1.8.1' + cu_version: "cu111" - binary_macos_wheel: cu_version: cpu name: macos_wheel_py36_cpu diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ddcd728..4b89e002 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -191,6 +191,7 @@ jobs: docker pull $DOCKER_IMAGE - run: name: Build and run tests + no_output_timeout: 20m command: | set -e @@ -328,6 +329,42 @@ workflows: name: linux_conda_py36_cu110_pyt171 python_version: '3.6' pytorch_version: 1.7.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py36_cu101_pyt180 + python_version: '3.6' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py36_cu102_pyt180 + python_version: '3.6' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py36_cu111_pyt180 + python_version: '3.6' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py36_cu101_pyt181 + python_version: '3.6' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py36_cu102_pyt181 + python_version: '3.6' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py36_cu111_pyt181 + python_version: '3.6' + pytorch_version: 1.8.1 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu92 @@ -430,6 +467,42 @@ workflows: name: linux_conda_py37_cu110_pyt171 python_version: '3.7' pytorch_version: 1.7.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py37_cu101_pyt180 + python_version: '3.7' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py37_cu102_pyt180 + python_version: '3.7' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py37_cu111_pyt180 + python_version: '3.7' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py37_cu101_pyt181 + python_version: '3.7' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py37_cu102_pyt181 + python_version: '3.7' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py37_cu111_pyt181 + python_version: '3.7' + pytorch_version: 1.8.1 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu92 @@ -532,6 +605,42 @@ workflows: name: linux_conda_py38_cu110_pyt171 python_version: '3.8' pytorch_version: 1.7.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py38_cu101_pyt180 + python_version: '3.8' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py38_cu102_pyt180 + python_version: '3.8' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py38_cu111_pyt180 + python_version: '3.8' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py38_cu101_pyt181 + python_version: '3.8' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py38_cu102_pyt181 + python_version: '3.8' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py38_cu111_pyt181 + python_version: '3.8' + pytorch_version: 1.8.1 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu101 @@ -550,6 +659,42 @@ workflows: name: linux_conda_py39_cu110_pyt171 python_version: '3.9' pytorch_version: 1.7.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py39_cu101_pyt180 + python_version: '3.9' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py39_cu102_pyt180 + python_version: '3.9' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py39_cu111_pyt180 + python_version: '3.9' + pytorch_version: 1.8.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu101 + name: linux_conda_py39_cu101_pyt181 + python_version: '3.9' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py39_cu102_pyt181 + python_version: '3.9' + pytorch_version: 1.8.1 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu111 + name: linux_conda_py39_cu111_pyt181 + python_version: '3.9' + pytorch_version: 1.8.1 - binary_linux_conda_cuda: name: testrun_conda_cuda_py36_cu101_pyt14 context: DOCKERHUB_TOKEN @@ -568,6 +713,12 @@ workflows: python_version: "3.7" pytorch_version: '1.7.0' cu_version: "cu110" + - binary_linux_conda_cuda: + name: testrun_conda_cuda_py39_cu111_pyt181 + context: DOCKERHUB_TOKEN + python_version: "3.9" + pytorch_version: '1.8.1' + cu_version: "cu111" - binary_macos_wheel: cu_version: cpu name: macos_wheel_py36_cpu diff --git a/.circleci/regenerate.py b/.circleci/regenerate.py index 4c9d6b0c..3099e812 100755 --- a/.circleci/regenerate.py +++ b/.circleci/regenerate.py @@ -21,6 +21,8 @@ CONDA_CUDA_VERSIONS = { "1.6.0": ["cu92", "cu101", "cu102"], "1.7.0": ["cu101", "cu102", "cu110"], "1.7.1": ["cu101", "cu102", "cu110"], + "1.8.0": ["cu101", "cu102", "cu111"], + "1.8.1": ["cu101", "cu102", "cu111"], } diff --git a/packaging/build_conda.sh b/packaging/build_conda.sh index 5adb1227..18230c67 100755 --- a/packaging/build_conda.sh +++ b/packaging/build_conda.sh @@ -26,4 +26,4 @@ then fi # shellcheck disable=SC2086 -conda build $CONDA_CHANNEL_FLAGS ${TEST_FLAG:-} -c bottler -c defaults -c fvcore -c iopath -c conda-forge --no-anaconda-upload --python "$PYTHON_VERSION" packaging/pytorch3d +conda build $CONDA_CHANNEL_FLAGS ${TEST_FLAG:-} -c bottler -c fvcore -c iopath -c conda-forge --no-anaconda-upload --python "$PYTHON_VERSION" packaging/pytorch3d diff --git a/packaging/linux_wheels/inside.sh b/packaging/linux_wheels/inside.sh index d4105753..4ca4b48d 100644 --- a/packaging/linux_wheels/inside.sh +++ b/packaging/linux_wheels/inside.sh @@ -26,8 +26,10 @@ declare -A CONDA_CUDA_VERSIONS=( # ["1.5.0"]="cu101 cu102" # ["1.5.1"]="cu101 cu102" # ["1.6.0"]="cu101 cu102" - ["1.7.0"]="cu101 cu102 cu110" - ["1.7.1"]="cu101 cu102 cu110" +# ["1.7.0"]="cu101 cu102 cu110" +# ["1.7.1"]="cu101 cu102 cu110" + ["1.8.0"]="cu101 cu102 cu111" + ["1.8.1"]="cu101 cu102 cu111" ) @@ -52,6 +54,11 @@ do for cu_version in ${CONDA_CUDA_VERSIONS[$pytorch_version]} do case "$cu_version" in + cu111) + export CUDA_HOME=/usr/local/cuda-11.1/ + export CUDA_TAG=11.1 + export NVCC_FLAGS="-gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50" + ;; cu110) export CUDA_HOME=/usr/local/cuda-11.0/ export CUDA_TAG=11.0 diff --git a/packaging/pkg_helpers.bash b/packaging/pkg_helpers.bash index 80f58100..92f50be5 100644 --- a/packaging/pkg_helpers.bash +++ b/packaging/pkg_helpers.bash @@ -51,6 +51,17 @@ setup_cuda() { # Now work out the CUDA settings case "$CU_VERSION" in + cu111) + if [[ "$OSTYPE" == "msys" ]]; then + export CUDA_HOME="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.1" + else + export CUDA_HOME=/usr/local/cuda-11.1/ + fi + export FORCE_CUDA=1 + # Hard-coding gencode flags is temporary situation until + # https://github.com/pytorch/pytorch/pull/23408 lands + export NVCC_FLAGS="-gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_50,code=compute_50" + ;; cu110) if [[ "$OSTYPE" == "msys" ]]; then export CUDA_HOME="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0" @@ -236,7 +247,7 @@ setup_conda_pytorch_constraint() { exit 1 fi else - export CONDA_CHANNEL_FLAGS="-c pytorch -c pytorch-nightly" + export CONDA_CHANNEL_FLAGS="-c pytorch" fi if [[ "$CU_VERSION" == cpu ]]; then export CONDA_PYTORCH_BUILD_CONSTRAINT="- pytorch==$PYTORCH_VERSION${PYTORCH_VERSION_SUFFIX}" @@ -256,6 +267,10 @@ setup_conda_cudatoolkit_constraint() { export CONDA_CUDATOOLKIT_CONSTRAINT="" else case "$CU_VERSION" in + cu111) + export CONDA_CUDATOOLKIT_CONSTRAINT="- cudatoolkit >=11.1,<11.2 # [not osx]" + #export CONDA_CUB_CONSTRAINT="- nvidiacub" + ;; cu110) export CONDA_CUDATOOLKIT_CONSTRAINT="- cudatoolkit >=11.0,<11.1 # [not osx]" # Even though cudatoolkit 11.0 provides CUB we need our own, to control the diff --git a/packaging/pytorch3d/conda_build_config.yaml b/packaging/pytorch3d/conda_build_config.yaml deleted file mode 100644 index 5188bb0e..00000000 --- a/packaging/pytorch3d/conda_build_config.yaml +++ /dev/null @@ -1,24 +0,0 @@ -blas_impl: - - mkl # [x86_64] -c_compiler: - - vs2017 # [win] -cxx_compiler: - - vs2017 # [win] -python: - - 3.5 - - 3.6 -# This differs from target_platform in that it determines what subdir the compiler -# will target, not what subdir the compiler package will be itself. -# For example, we need a win-64 vs2008_win-32 package, so that we compile win-32 -# code on win-64 miniconda. -cross_compiler_target_platform: - - win-64 # [win] -target_platform: - - win-64 # [win] -vc: - - 14 -zip_keys: - - # [win] - - vc # [win] - - c_compiler # [win] - - cxx_compiler # [win]