From a94f3f4c4bf581ee056e1d18a46aa4ecba5ed89e Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Wed, 6 Jul 2022 14:36:45 -0700 Subject: [PATCH] Add pytorch 1.12, drop pytorch 1.7 Summary: change deps Reviewed By: kjchalup Differential Revision: D37612290 fbshipit-source-id: 51af55159605b0edd89ffa9e177238466fc2d993 --- .circleci/config.in.yml | 10 +- .circleci/config.yml | 156 ++++++++++++++----------------- .circleci/regenerate.py | 3 +- INSTALL.md | 4 +- packaging/linux_wheels/inside.sh | 8 +- packaging/pkg_helpers.bash | 14 +++ 6 files changed, 100 insertions(+), 95 deletions(-) diff --git a/.circleci/config.in.yml b/.circleci/config.in.yml index 69ce1fc4..7aae4a1a 100644 --- a/.circleci/config.in.yml +++ b/.circleci/config.in.yml @@ -182,23 +182,23 @@ workflows: # context: DOCKERHUB_TOKEN {{workflows()}} - binary_linux_conda_cuda: - name: testrun_conda_cuda_py37_cu102_pyt170 + name: testrun_conda_cuda_py37_cu102_pyt190 context: DOCKERHUB_TOKEN python_version: "3.7" - pytorch_version: '1.7.0' + pytorch_version: '1.9.0' cu_version: "cu102" - binary_macos_wheel: cu_version: cpu name: macos_wheel_py37_cpu python_version: '3.7' - pytorch_version: '1.9.0' + pytorch_version: '1.12.0' - binary_macos_wheel: cu_version: cpu name: macos_wheel_py38_cpu python_version: '3.8' - pytorch_version: '1.9.0' + pytorch_version: '1.12.0' - binary_macos_wheel: cu_version: cpu name: macos_wheel_py39_cpu python_version: '3.9' - pytorch_version: '1.9.0' + pytorch_version: '1.12.0' diff --git a/.circleci/config.yml b/.circleci/config.yml index 20819cd4..09dd52d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -180,42 +180,6 @@ workflows: jobs: # - main: # context: DOCKERHUB_TOKEN - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu101 - name: linux_conda_py37_cu101_pyt170 - python_version: '3.7' - pytorch_version: 1.7.0 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu102 - name: linux_conda_py37_cu102_pyt170 - python_version: '3.7' - pytorch_version: 1.7.0 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu110 - name: linux_conda_py37_cu110_pyt170 - python_version: '3.7' - pytorch_version: 1.7.0 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu101 - name: linux_conda_py37_cu101_pyt171 - python_version: '3.7' - pytorch_version: 1.7.1 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu102 - name: linux_conda_py37_cu102_pyt171 - python_version: '3.7' - pytorch_version: 1.7.1 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu110 - name: linux_conda_py37_cu110_pyt171 - python_version: '3.7' - pytorch_version: 1.7.1 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu101 @@ -359,42 +323,25 @@ workflows: name: linux_conda_py37_cu115_pyt1110 python_version: '3.7' pytorch_version: 1.11.0 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu101 - name: linux_conda_py38_cu101_pyt170 - python_version: '3.8' - pytorch_version: 1.7.0 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu102 - name: linux_conda_py38_cu102_pyt170 - python_version: '3.8' - pytorch_version: 1.7.0 + name: linux_conda_py37_cu102_pyt1120 + python_version: '3.7' + pytorch_version: 1.12.0 + - binary_linux_conda: + conda_docker_image: pytorch/conda-builder:cuda113 + context: DOCKERHUB_TOKEN + cu_version: cu113 + name: linux_conda_py37_cu113_pyt1120 + python_version: '3.7' + pytorch_version: 1.12.0 - binary_linux_conda: context: DOCKERHUB_TOKEN - cu_version: cu110 - name: linux_conda_py38_cu110_pyt170 - python_version: '3.8' - pytorch_version: 1.7.0 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu101 - name: linux_conda_py38_cu101_pyt171 - python_version: '3.8' - pytorch_version: 1.7.1 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu102 - name: linux_conda_py38_cu102_pyt171 - python_version: '3.8' - pytorch_version: 1.7.1 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu110 - name: linux_conda_py38_cu110_pyt171 - python_version: '3.8' - pytorch_version: 1.7.1 + cu_version: cu116 + name: linux_conda_py37_cu116_pyt1120 + python_version: '3.7' + pytorch_version: 1.12.0 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu101 @@ -538,24 +485,25 @@ workflows: name: linux_conda_py38_cu115_pyt1110 python_version: '3.8' pytorch_version: 1.11.0 - - binary_linux_conda: - context: DOCKERHUB_TOKEN - cu_version: cu101 - name: linux_conda_py39_cu101_pyt171 - python_version: '3.9' - pytorch_version: 1.7.1 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu102 - name: linux_conda_py39_cu102_pyt171 - python_version: '3.9' - pytorch_version: 1.7.1 + name: linux_conda_py38_cu102_pyt1120 + python_version: '3.8' + pytorch_version: 1.12.0 + - binary_linux_conda: + conda_docker_image: pytorch/conda-builder:cuda113 + context: DOCKERHUB_TOKEN + cu_version: cu113 + name: linux_conda_py38_cu113_pyt1120 + python_version: '3.8' + pytorch_version: 1.12.0 - binary_linux_conda: context: DOCKERHUB_TOKEN - cu_version: cu110 - name: linux_conda_py39_cu110_pyt171 - python_version: '3.9' - pytorch_version: 1.7.1 + cu_version: cu116 + name: linux_conda_py38_cu116_pyt1120 + python_version: '3.8' + pytorch_version: 1.12.0 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu101 @@ -699,6 +647,25 @@ workflows: name: linux_conda_py39_cu115_pyt1110 python_version: '3.9' pytorch_version: 1.11.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py39_cu102_pyt1120 + python_version: '3.9' + pytorch_version: 1.12.0 + - binary_linux_conda: + conda_docker_image: pytorch/conda-builder:cuda113 + context: DOCKERHUB_TOKEN + cu_version: cu113 + name: linux_conda_py39_cu113_pyt1120 + python_version: '3.9' + pytorch_version: 1.12.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu116 + name: linux_conda_py39_cu116_pyt1120 + python_version: '3.9' + pytorch_version: 1.12.0 - binary_linux_conda: context: DOCKERHUB_TOKEN cu_version: cu102 @@ -725,24 +692,43 @@ workflows: name: linux_conda_py310_cu115_pyt1110 python_version: '3.10' pytorch_version: 1.11.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu102 + name: linux_conda_py310_cu102_pyt1120 + python_version: '3.10' + pytorch_version: 1.12.0 + - binary_linux_conda: + conda_docker_image: pytorch/conda-builder:cuda113 + context: DOCKERHUB_TOKEN + cu_version: cu113 + name: linux_conda_py310_cu113_pyt1120 + python_version: '3.10' + pytorch_version: 1.12.0 + - binary_linux_conda: + context: DOCKERHUB_TOKEN + cu_version: cu116 + name: linux_conda_py310_cu116_pyt1120 + python_version: '3.10' + pytorch_version: 1.12.0 - binary_linux_conda_cuda: - name: testrun_conda_cuda_py37_cu102_pyt170 + name: testrun_conda_cuda_py37_cu102_pyt190 context: DOCKERHUB_TOKEN python_version: "3.7" - pytorch_version: '1.7.0' + pytorch_version: '1.9.0' cu_version: "cu102" - binary_macos_wheel: cu_version: cpu name: macos_wheel_py37_cpu python_version: '3.7' - pytorch_version: '1.9.0' + pytorch_version: '1.12.0' - binary_macos_wheel: cu_version: cpu name: macos_wheel_py38_cpu python_version: '3.8' - pytorch_version: '1.9.0' + pytorch_version: '1.12.0' - binary_macos_wheel: cu_version: cpu name: macos_wheel_py39_cpu python_version: '3.9' - pytorch_version: '1.9.0' + pytorch_version: '1.12.0' diff --git a/.circleci/regenerate.py b/.circleci/regenerate.py index 9542a87f..dcb27acb 100755 --- a/.circleci/regenerate.py +++ b/.circleci/regenerate.py @@ -20,8 +20,6 @@ from packaging import version # version of pytorch. # Pytorch 1.4 also supports cuda 10.0 but we no longer build for cuda 10.0 at all. CONDA_CUDA_VERSIONS = { - "1.7.0": ["cu101", "cu102", "cu110"], - "1.7.1": ["cu101", "cu102", "cu110"], "1.8.0": ["cu101", "cu102", "cu111"], "1.8.1": ["cu101", "cu102", "cu111"], "1.9.0": ["cu102", "cu111"], @@ -30,6 +28,7 @@ CONDA_CUDA_VERSIONS = { "1.10.1": ["cu102", "cu111", "cu113"], "1.10.2": ["cu102", "cu111", "cu113"], "1.11.0": ["cu102", "cu111", "cu113", "cu115"], + "1.12.0": ["cu102", "cu113", "cu116"], } diff --git a/INSTALL.md b/INSTALL.md index f6620514..52b673fc 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -9,7 +9,7 @@ The core library is written in PyTorch. Several components have underlying imple - Linux or macOS or Windows - Python 3.6, 3.7, 3.8 or 3.9 -- PyTorch 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2 or 1.11.0. +- PyTorch 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2, 1.11.0 or 1.12.0. - torchvision that matches the PyTorch installation. You can install them together as explained at pytorch.org to make sure of this. - gcc & g++ ≥ 4.9 - [fvcore](https://github.com/facebookresearch/fvcore) @@ -78,7 +78,7 @@ Or, to install a nightly (non-official, alpha) build: conda install pytorch3d -c pytorch3d-nightly ``` ### 2. Install from PyPI, on Mac only. -This works with pytorch 1.9.0 only. The build is CPU only. +This works with pytorch 1.12.0 only. The build is CPU only. ``` pip install pytorch3d ``` diff --git a/packaging/linux_wheels/inside.sh b/packaging/linux_wheels/inside.sh index d9811c72..00e09f34 100644 --- a/packaging/linux_wheels/inside.sh +++ b/packaging/linux_wheels/inside.sh @@ -60,7 +60,7 @@ do for cu_version in ${CONDA_CUDA_VERSIONS[$pytorch_version]} do - if [[ "cu113 cu115" == *$cu_version* ]] + if [[ "cu113 cu115 cu116" == *$cu_version* ]] # ^^^ CUDA versions listed here have to be built # in their own containers. then @@ -74,6 +74,11 @@ do fi case "$cu_version" in + cu116) + export CUDA_HOME=/usr/local/cuda-11.6/ + export CUDA_TAG=11.6 + 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" + ;; cu115) export CUDA_HOME=/usr/local/cuda-11.5/ export CUDA_TAG=11.5 @@ -124,6 +129,7 @@ do conda create -y -n "$tag" "python=$python_version" conda activate "$tag" + # shellcheck disable=SC2086 conda install -y -c pytorch $extra_channel "pytorch=$pytorch_version" "cudatoolkit=$CUDA_TAG" torchvision pip install fvcore iopath echo "python version" "$python_version" "pytorch version" "$pytorch_version" "cuda version" "$cu_version" "tag" "$tag" diff --git a/packaging/pkg_helpers.bash b/packaging/pkg_helpers.bash index cfb747ef..e22643ec 100644 --- a/packaging/pkg_helpers.bash +++ b/packaging/pkg_helpers.bash @@ -55,6 +55,17 @@ setup_cuda() { # Now work out the CUDA settings case "$CU_VERSION" in + cu116) + if [[ "$OSTYPE" == "msys" ]]; then + export CUDA_HOME="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.6" + else + export CUDA_HOME=/usr/local/cuda-11.6/ + 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" + ;; cu115) if [[ "$OSTYPE" == "msys" ]]; then export CUDA_HOME="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.5" @@ -304,6 +315,9 @@ setup_conda_cudatoolkit_constraint() { export CONDA_CUDATOOLKIT_CONSTRAINT="" else case "$CU_VERSION" in + cu116) + export CONDA_CUDATOOLKIT_CONSTRAINT="- cudatoolkit >=11.6,<11.7 # [not osx]" + ;; cu115) export CONDA_CUDATOOLKIT_CONSTRAINT="- cudatoolkit >=11.5,<11.6 # [not osx]" ;;