From 44fe9be201135faac45c75c8d12cc74263874849 Mon Sep 17 00:00:00 2001 From: rusty1s Date: Wed, 29 Jun 2022 18:50:32 +0200 Subject: [PATCH 1/2] PyTorch 1.12 support --- .github/workflows/building-conda.yml | 24 ++++++++++----------- .github/workflows/building.yml | 19 ++++++++-------- .github/workflows/cuda/cu111-Windows-env.sh | 2 +- .github/workflows/cuda/cu113-Windows-env.sh | 2 +- .github/workflows/cuda/cu116-Linux-env.sh | 8 +++++++ .github/workflows/cuda/cu116-Linux.sh | 15 +++++++++++++ .github/workflows/cuda/cu116-Windows-env.sh | 8 +++++++ .github/workflows/cuda/cu116-Windows.sh | 20 +++++++++++++++++ .github/workflows/linting.yml | 2 +- .github/workflows/testing.yml | 2 +- README.md | 24 ++++++++++----------- conda/pytorch-scatter/README.md | 2 +- conda/pytorch-scatter/build_conda.sh | 5 ++++- 13 files changed, 92 insertions(+), 41 deletions(-) create mode 100644 .github/workflows/cuda/cu116-Linux-env.sh create mode 100755 .github/workflows/cuda/cu116-Linux.sh create mode 100644 .github/workflows/cuda/cu116-Windows-env.sh create mode 100755 .github/workflows/cuda/cu116-Windows.sh diff --git a/.github/workflows/building-conda.yml b/.github/workflows/building-conda.yml index 30f19825..70d0bba8 100644 --- a/.github/workflows/building-conda.yml +++ b/.github/workflows/building-conda.yml @@ -12,27 +12,25 @@ jobs: matrix: os: [ubuntu-18.04, macos-10.15, windows-2019] python-version: ['3.7', '3.8', '3.9', '3.10'] - torch-version: [1.10.0, 1.11.0] - cuda-version: ['cpu', 'cu102', 'cu113', 'cu115'] + torch-version: [1.11.0, 1.12.0] + cuda-version: ['cpu', 'cu102', 'cu113', 'cu115', 'cu116'] exclude: - - torch-version: 1.10.0 + - torch-version: 1.11.0 + cuda-version: 'cu116' + - torch-version: 1.12.0 cuda-version: 'cu115' - - torch-version: 1.10.0 - python-version: '3.10' - - os: windows-2019 - torch-version: 1.11.0 - cuda-version: 'cu102' - os: macos-10.15 cuda-version: 'cu102' - os: macos-10.15 cuda-version: 'cu113' - os: macos-10.15 cuda-version: 'cu115' - # There is a weird `glibc=2.27` bug going on for this combination: - - os: ubuntu-18.04 - python-version: '3.10' - - os: ubuntu-18.04 - cuda-version: 'cu115' + - os: macos-10.15 + cuda-version: 'cu116' + - os: windows-2019 + cuda-version: 'cu102' + - os: windows-2019 # Complains about CUDA mismatch. + python-version: '3.7' steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/building.yml b/.github/workflows/building.yml index 17be73f3..e483f754 100644 --- a/.github/workflows/building.yml +++ b/.github/workflows/building.yml @@ -12,26 +12,25 @@ jobs: matrix: os: [ubuntu-18.04, macos-10.15, windows-2019] python-version: ['3.7', '3.8', '3.9', '3.10'] - torch-version: [1.10.0, 1.11.0] - cuda-version: ['cpu', 'cu102', 'cu113', 'cu115'] + torch-version: [1.11.0, 1.12.0] + cuda-version: ['cpu', 'cu102', 'cu113', 'cu115', 'cu116'] exclude: - - torch-version: 1.10.0 + - torch-version: 1.11.0 + cuda-version: 'cu116' + - torch-version: 1.12.0 cuda-version: 'cu115' - - torch-version: 1.10.0 - python-version: '3.10' - - os: windows-2019 - torch-version: 1.11.0 - cuda-version: 'cu102' - os: macos-10.15 cuda-version: 'cu102' - os: macos-10.15 cuda-version: 'cu113' - os: macos-10.15 cuda-version: 'cu115' - # There is a weird bug going on for this combination: + - os: macos-10.15 + cuda-version: 'cu116' - os: windows-2019 + cuda-version: 'cu102' + - os: windows-2019 # Complains about CUDA mismatch. python-version: '3.7' - cuda-version: 'cu115' steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/cuda/cu111-Windows-env.sh b/.github/workflows/cuda/cu111-Windows-env.sh index 0e672a3f..81acf575 100644 --- a/.github/workflows/cuda/cu111-Windows-env.sh +++ b/.github/workflows/cuda/cu111-Windows-env.sh @@ -5,4 +5,4 @@ PATH=${CUDA_HOME}/bin:$PATH PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH export FORCE_CUDA=1 -export TORCH_CUDA_ARCH_LIST="6.0+PTX" +export TORCH_CUDA_ARCH_LIST="3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6" diff --git a/.github/workflows/cuda/cu113-Windows-env.sh b/.github/workflows/cuda/cu113-Windows-env.sh index 3a662fb8..6821529c 100644 --- a/.github/workflows/cuda/cu113-Windows-env.sh +++ b/.github/workflows/cuda/cu113-Windows-env.sh @@ -5,4 +5,4 @@ PATH=${CUDA_HOME}/bin:$PATH PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH export FORCE_CUDA=1 -export TORCH_CUDA_ARCH_LIST="6.0+PTX" +export TORCH_CUDA_ARCH_LIST="3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6" diff --git a/.github/workflows/cuda/cu116-Linux-env.sh b/.github/workflows/cuda/cu116-Linux-env.sh new file mode 100644 index 00000000..fe318942 --- /dev/null +++ b/.github/workflows/cuda/cu116-Linux-env.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CUDA_HOME=/usr/local/cuda-11.6 +LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH} +PATH=${CUDA_HOME}/bin:${PATH} + +export FORCE_CUDA=1 +export TORCH_CUDA_ARCH_LIST="3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6" diff --git a/.github/workflows/cuda/cu116-Linux.sh b/.github/workflows/cuda/cu116-Linux.sh new file mode 100755 index 00000000..28cda58d --- /dev/null +++ b/.github/workflows/cuda/cu116-Linux.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +OS=ubuntu1804 + +wget -nv https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin +sudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600 +wget -nv https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-${OS}-11-6-local_11.6.2-510.47.03-1_amd64.deb +sudo dpkg -i cuda-repo-${OS}-11-6-local_11.6.2-510.47.03-1_amd64.deb +sudo apt-key add /var/cuda-repo-${OS}-11-6-local/7fa2af80.pub + +sudo apt-get -qq update +sudo apt install cuda-nvcc-11-6 cuda-libraries-dev-11-6 +sudo apt clean + +rm -f https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda-repo-${OS}-11-6-local_11.6.2-510.47.03-1_amd64.deb diff --git a/.github/workflows/cuda/cu116-Windows-env.sh b/.github/workflows/cuda/cu116-Windows-env.sh new file mode 100644 index 00000000..3a662fb8 --- /dev/null +++ b/.github/workflows/cuda/cu116-Windows-env.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CUDA_HOME=/c/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v11.3 +PATH=${CUDA_HOME}/bin:$PATH +PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH + +export FORCE_CUDA=1 +export TORCH_CUDA_ARCH_LIST="6.0+PTX" diff --git a/.github/workflows/cuda/cu116-Windows.sh b/.github/workflows/cuda/cu116-Windows.sh new file mode 100755 index 00000000..db2559c4 --- /dev/null +++ b/.github/workflows/cuda/cu116-Windows.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# TODO We currently use CUDA 11.3 to build CUDA 11.5 Windows wheels + +# Install NVIDIA drivers, see: +# https://github.com/pytorch/vision/blob/master/packaging/windows/internal/cuda_install.bat#L99-L102 +curl -k -L "https://drive.google.com/u/0/uc?id=1injUyo3lnarMgWyRcXqKg4UGnN0ysmuq&export=download" --output "/tmp/gpu_driver_dlls.zip" +7z x "/tmp/gpu_driver_dlls.zip" -o"/c/Windows/System32" + +export CUDA_SHORT=11.3 +export CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.0/local_installers +export CUDA_FILE=cuda_${CUDA_SHORT}.0_465.89_win10.exe + +# Install CUDA: +curl -k -L "${CUDA_URL}/${CUDA_FILE}" --output "${CUDA_FILE}" +echo "" +echo "Installing from ${CUDA_FILE}..." +PowerShell -Command "Start-Process -FilePath \"${CUDA_FILE}\" -ArgumentList \"-s nvcc_${CUDA_SHORT} cuobjdump_${CUDA_SHORT} nvprune_${CUDA_SHORT} cupti_${CUDA_SHORT} cublas_dev_${CUDA_SHORT} cudart_${CUDA_SHORT} cufft_dev_${CUDA_SHORT} curand_dev_${CUDA_SHORT} cusolver_dev_${CUDA_SHORT} cusparse_dev_${CUDA_SHORT} thrust_${CUDA_SHORT} npp_dev_${CUDA_SHORT} nvrtc_dev_${CUDA_SHORT} nvml_dev_${CUDA_SHORT}\" -Wait -NoNewWindow" +echo "Done!" +rm -f "${CUDA_FILE}" diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index a4173a94..0aa5afd8 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -32,7 +32,7 @@ jobs: strategy: matrix: - torch-version: [1.11.0] + torch-version: [1.12.0] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 7d1b473e..bd1f6e72 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -16,7 +16,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] python-version: [3.7] - torch-version: [1.10.0, 1.11.0] + torch-version: [1.11.0, 1.12.0] steps: - uses: actions/checkout@v2 diff --git a/README.md b/README.md index 90e2a97d..5fa66173 100644 --- a/README.md +++ b/README.md @@ -54,39 +54,39 @@ conda install pytorch-scatter -c pyg We alternatively provide pip wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl). -#### PyTorch 1.11 +#### PyTorch 1.12 -To install the binaries for PyTorch 1.11.0, simply run +To install the binaries for PyTorch 1.12.0, simply run ``` -pip install torch-scatter -f https://data.pyg.org/whl/torch-1.11.0+${CUDA}.html +pip install torch-scatter -f https://data.pyg.org/whl/torch-1.12.0+${CUDA}.html ``` -where `${CUDA}` should be replaced by either `cpu`, `cu102`, `cu113`, or `cu115` depending on your PyTorch installation. +where `${CUDA}` should be replaced by either `cpu`, `cu102`, `cu113`, or `cu116` depending on your PyTorch installation. -| | `cpu` | `cu102` | `cu113` | `cu115` | +| | `cpu` | `cu102` | `cu113` | `cu116` | |-------------|-------|---------|---------|---------| | **Linux** | ✅ | ✅ | ✅ | ✅ | | **Windows** | ✅ | | ✅ | ✅ | | **macOS** | ✅ | | | | -#### PyTorch 1.10 +#### PyTorch 1.11 -To install the binaries for PyTorch 1.10.0, PyTorch 1.10.1 and PyTorch 1.10.2, simply run +To install the binaries for PyTorch 1.11.0, simply run ``` -pip install torch-scatter -f https://data.pyg.org/whl/torch-1.10.0+${CUDA}.html +pip install torch-scatter -f https://data.pyg.org/whl/torch-1.11.0+${CUDA}.html ``` -where `${CUDA}` should be replaced by either `cpu`, `cu102`, `cu111`, or `cu113` depending on your PyTorch installation. +where `${CUDA}` should be replaced by either `cpu`, `cu102`, `cu113`, or `cu115` depending on your PyTorch installation. -| | `cpu` | `cu102` | `cu111` | `cu113` | +| | `cpu` | `cu102` | `cu113` | `cu115` | |-------------|-------|---------|---------|---------| | **Linux** | ✅ | ✅ | ✅ | ✅ | -| **Windows** | ✅ | ✅ | ✅ | ✅ | +| **Windows** | ✅ | | ✅ | ✅ | | **macOS** | ✅ | | | | -**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1 and PyTorch 1.9.0 (following the same procedure). +**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, and PyTorch 1.10.0/1.10.1/1.10.2 (following the same procedure). For older versions, you might need to explicitly specify the latest supported version number in order to prevent a manual installation from source. You can look up the latest supported version number [here](https://data.pyg.org/whl). diff --git a/conda/pytorch-scatter/README.md b/conda/pytorch-scatter/README.md index 91ba5f17..8bb44116 100644 --- a/conda/pytorch-scatter/README.md +++ b/conda/pytorch-scatter/README.md @@ -1,3 +1,3 @@ ``` -./build_conda.sh 3.9 1.11.0 cu113 # python, pytorch and cuda version +./build_conda.sh 3.9 1.12.0 cu113 # python, pytorch and cuda version ``` diff --git a/conda/pytorch-scatter/build_conda.sh b/conda/pytorch-scatter/build_conda.sh index 91b4135e..aae57499 100755 --- a/conda/pytorch-scatter/build_conda.sh +++ b/conda/pytorch-scatter/build_conda.sh @@ -10,6 +10,9 @@ if [ "${CUDA_VERSION}" = "cpu" ]; then export CONDA_CUDATOOLKIT_CONSTRAINT="cpuonly # [not osx]" else case $CUDA_VERSION in + cu116) + export CONDA_CUDATOOLKIT_CONSTRAINT="cudatoolkit==11.6.*" + ;; cu115) export CONDA_CUDATOOLKIT_CONSTRAINT="cudatoolkit==11.5.*" ;; @@ -36,4 +39,4 @@ echo "PyTorch $TORCH_VERSION+$CUDA_VERSION" echo "- $CONDA_PYTORCH_CONSTRAINT" echo "- $CONDA_CUDATOOLKIT_CONSTRAINT" -conda build . -c pytorch -c default -c nvidia --output-folder "$HOME/conda-bld" +conda build . -c pytorch -c default -c nvidia -c conda-forge --output-folder "$HOME/conda-bld" From b7ca07149512c92a045d61565d4c9c74279e549a Mon Sep 17 00:00:00 2001 From: rusty1s Date: Wed, 29 Jun 2022 18:52:00 +0200 Subject: [PATCH 2/2] update --- .github/workflows/cuda/cu111-Windows-env.sh | 2 +- .github/workflows/cuda/cu113-Windows-env.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cuda/cu111-Windows-env.sh b/.github/workflows/cuda/cu111-Windows-env.sh index 81acf575..0e672a3f 100644 --- a/.github/workflows/cuda/cu111-Windows-env.sh +++ b/.github/workflows/cuda/cu111-Windows-env.sh @@ -5,4 +5,4 @@ PATH=${CUDA_HOME}/bin:$PATH PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH export FORCE_CUDA=1 -export TORCH_CUDA_ARCH_LIST="3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6" +export TORCH_CUDA_ARCH_LIST="6.0+PTX" diff --git a/.github/workflows/cuda/cu113-Windows-env.sh b/.github/workflows/cuda/cu113-Windows-env.sh index 6821529c..3a662fb8 100644 --- a/.github/workflows/cuda/cu113-Windows-env.sh +++ b/.github/workflows/cuda/cu113-Windows-env.sh @@ -5,4 +5,4 @@ PATH=${CUDA_HOME}/bin:$PATH PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH export FORCE_CUDA=1 -export TORCH_CUDA_ARCH_LIST="3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6" +export TORCH_CUDA_ARCH_LIST="6.0+PTX"