Skip to content

Commit

Permalink
Add PyTorch 2.1.0 support (#191)
Browse files Browse the repository at this point in the history
* update

* update

* update
  • Loading branch information
rusty1s committed Oct 5, 2023
1 parent 73b5146 commit 89b74f0
Show file tree
Hide file tree
Showing 17 changed files with 102 additions and 54 deletions.
26 changes: 13 additions & 13 deletions .github/workflows/building-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,21 @@ jobs:
fail-fast: false
matrix:
# We have trouble building for Windows - drop for now.
os: [ubuntu-18.04, macos-10.15] # windows-2019
python-version: ['3.7', '3.8', '3.9', '3.10']
torch-version: [1.13.0, 2.0.0]
# We have trouble building for `cu116` due to PyTorch 1.13.0 bugs
cuda-version: ['cpu', 'cu117', 'cu118']
os: [ubuntu-20.04, macos-11] # windows-2019
python-version: ['3.8', '3.9', '3.10', '3.11']
torch-version: [2.0.0, 2.1.0]
cuda-version: ['cpu', 'cu117', 'cu118', 'cu121']
exclude:
- torch-version: 2.0.0
python-version: '3.7'
- torch-version: 1.13.0
cuda-version: 'cu118'
- os: macos-10.15
cuda-version: 'cu121'
- torch-version: 2.1.0
cuda-version: 'cu117'
- os: macos-11
cuda-version: 'cu117'
- os: macos-10.15
- os: macos-11
cuda-version: 'cu118'
- os: macos-11
cuda-version: 'cu121'

steps:
- uses: actions/checkout@v2
Expand All @@ -33,10 +34,9 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Free up disk space
- name: Free Disk Space (Ubuntu)
if: ${{ runner.os == 'Linux' }}
run: |
sudo rm -rf /usr/share/dotnet
uses: jlumbroso/free-disk-space@main

- name: Install Conda packages
run: |
Expand Down
36 changes: 16 additions & 20 deletions .github/workflows/building.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,21 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04, macos-10.15, windows-2019]
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
torch-version: [1.13.0, 2.0.0]
cuda-version: ['cpu', 'cu116', 'cu117', 'cu118']
os: [ubuntu-20.04, macos-11, windows-2019]
python-version: ['3.8', '3.9', '3.10', '3.11']
torch-version: [2.0.0, 2.1.0]
cuda-version: ['cpu', 'cu117', 'cu118', 'cu121']
exclude:
- torch-version: 1.13.0
python-version: '3.11'
- torch-version: 2.0.0
python-version: '3.7'
- torch-version: 1.13.0
cuda-version: 'cu118'
- torch-version: 2.0.0
cuda-version: 'cu116'
- os: macos-10.15
cuda-version: 'cu116'
- os: macos-10.15
cuda-version: 'cu121'
- torch-version: 2.1.0
cuda-version: 'cu117'
- os: macos-10.15
- os: macos-11
cuda-version: 'cu117'
- os: macos-11
cuda-version: 'cu118'
- os: macos-11
cuda-version: 'cu121'

steps:
- uses: actions/checkout@v2
Expand All @@ -40,12 +36,12 @@ jobs:
- name: Upgrade pip
run: |
pip install --upgrade setuptools
pip install scipy==1.10.1 # Python 3.8 support
pip list
- name: Free up disk space
- name: Free Disk Space (Ubuntu)
if: ${{ runner.os == 'Linux' }}
run: |
sudo rm -rf /usr/share/dotnet
uses: jlumbroso/free-disk-space@main

- name: Install CUDA ${{ matrix.cuda-version }}
if: ${{ matrix.cuda-version != 'cpu' }}
Expand Down Expand Up @@ -73,15 +69,15 @@ jobs:
- name: Install main package for CPU
if: ${{ matrix.cuda-version == 'cpu' }}
run: |
FORCE_ONLY_CPU=1 pip install -e .
FORCE_ONLY_CPU=1 python setup.py develop
shell:
bash

- name: Install main package for GPU
if: ${{ matrix.cuda-version != 'cpu' }}
run: |
source .github/workflows/cuda/${{ matrix.cuda-version }}-${{ runner.os }}-env.sh
pip install -e .
python setup.py develop
shell:
bash

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cuda/cu117-Linux.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

OS=ubuntu1804
OS=ubuntu2004

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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cuda/cu118-Linux.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

OS=ubuntu1804
OS=ubuntu2004

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
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/cuda/cu121-Linux-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

CUDA_HOME=/usr/local/cuda-12.1
LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
PATH=${CUDA_HOME}/bin:${PATH}

export FORCE_CUDA=1
export TORCH_CUDA_ARCH_LIST="5.0+PTX;6.0;7.0;7.5;8.0;8.6;9.0"
15 changes: 15 additions & 0 deletions .github/workflows/cuda/cu121-Linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

OS=ubuntu2004

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/12.1.1/local_installers/cuda-repo-${OS}-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo dpkg -i cuda-repo-${OS}-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo cp /var/cuda-repo-${OS}-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo apt-get -qq update
sudo apt install cuda-nvcc-12-1 cuda-libraries-dev-12-1
sudo apt clean

rm -f https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-${OS}-12-1-local_12.1.1-530.30.02-1_amd64.deb
8 changes: 8 additions & 0 deletions .github/workflows/cuda/cu121-Windows-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

CUDA_HOME=/c/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v12.1
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"
18 changes: 18 additions & 0 deletions .github/workflows/cuda/cu121-Windows.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

# 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=12.1
export CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.1/local_installers
export CUDA_FILE=cuda_${CUDA_SHORT}.1_531.14_windows.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}"
2 changes: 1 addition & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: [3.8]
torch-version: [1.13.0, 2.0.0]
torch-version: [2.0.0, 2.1.0]

steps:
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.0)
project(torchcluster)
set(CMAKE_CXX_STANDARD 14)
set(TORCHCLUSTER_VERSION 1.6.1)
set(TORCHCLUSTER_VERSION 1.6.2)

option(WITH_CUDA "Enable CUDA support" OFF)
option(WITH_PYTHON "Link to Python when building" ON)
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,39 +43,39 @@ conda install pytorch-cluster -c pyg

We alternatively provide pip wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl).

#### PyTorch 2.0
#### PyTorch 2.1

To install the binaries for PyTorch 2.0.0, simply run
To install the binaries for PyTorch 2.1.0, simply run

```
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.0.0+${CUDA}.html
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.1.0+${CUDA}.html
```

where `${CUDA}` should be replaced by either `cpu`, `cu117`, or `cu118` depending on your PyTorch installation.
where `${CUDA}` should be replaced by either `cpu`, `cu118`, or `cu121` depending on your PyTorch installation.

| | `cpu` | `cu117` | `cu118` |
| | `cpu` | `cu118` | `cu121` |
|-------------|-------|---------|---------|
| **Linux** ||||
| **Windows** ||||
| **macOS** || | |

#### PyTorch 1.13
#### PyTorch 2.0

To install the binaries for PyTorch 1.13.0, simply run
To install the binaries for PyTorch 2.0.0, simply run

```
pip install torch-cluster -f https://data.pyg.org/whl/torch-1.13.0+${CUDA}.html
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.0.0+${CUDA}.html
```

where `${CUDA}` should be replaced by either `cpu`, `cu116`, or `cu117` depending on your PyTorch installation.
where `${CUDA}` should be replaced by either `cpu`, `cu117`, or `cu118` depending on your PyTorch installation.

| | `cpu` | `cu116` | `cu117` |
| | `cpu` | `cu117` | `cu118` |
|-------------|-------|---------|---------|
| **Linux** ||||
| **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, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0 and PyTorch 1.12.0/1.12.1 (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, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1 and PyTorch 1.13.0/1.13.1 (following the same procedure).
For older versions, you need to explicitly specify the latest supported version number or install via `pip install --no-index` in order to prevent a manual installation from source.
You can look up the latest supported version number [here](https://data.pyg.org/whl).

Expand Down
2 changes: 1 addition & 1 deletion conda/pytorch-cluster/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
```
./build_conda.sh 3.9 2.0.0 cu117 # python, pytorch and cuda version
./build_conda.sh 3.9 2.1.0 cu118 # python, pytorch and cuda version
```
3 changes: 3 additions & 0 deletions conda/pytorch-cluster/build_conda.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ if [ "${CUDA_VERSION}" = "cpu" ]; then
export CONDA_CUDATOOLKIT_CONSTRAINT="cpuonly # [not osx]"
else
case $CUDA_VERSION in
cu121)
export CONDA_CUDATOOLKIT_CONSTRAINT="pytorch-cuda==12.1.*"
;;
cu118)
export CONDA_CUDATOOLKIT_CONSTRAINT="pytorch-cuda==11.8.*"
;;
Expand Down
2 changes: 1 addition & 1 deletion conda/pytorch-cluster/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package:
name: pytorch-cluster
version: 1.6.1
version: 1.6.2

source:
path: ../..
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ classifiers =
Development Status :: 5 - Production/Stable
License :: OSI Approved :: MIT License
Programming Language :: Python
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3 :: Only

[aliases]
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from torch.utils.cpp_extension import (CUDA_HOME, BuildExtension, CppExtension,
CUDAExtension)

__version__ = '1.6.1'
__version__ = '1.6.2'
URL = 'https://github.com/rusty1s/pytorch_cluster'

WITH_CUDA = False
Expand Down Expand Up @@ -135,7 +135,7 @@ def get_extensions():
'graph-neural-networks',
'cluster-algorithms',
],
python_requires='>=3.7',
python_requires='>=3.8',
install_requires=install_requires,
extras_require={
'test': test_requires,
Expand Down
2 changes: 1 addition & 1 deletion torch_cluster/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import torch

__version__ = '1.6.1'
__version__ = '1.6.2'

for library in [
'_version', '_grid', '_graclus', '_fps', '_rw', '_sampler', '_nearest',
Expand Down

0 comments on commit 89b74f0

Please sign in to comment.