diff --git a/.github/workflows/building.yml b/.github/workflows/building.yml index 78ff5580..0ef0f418 100644 --- a/.github/workflows/building.yml +++ b/.github/workflows/building.yml @@ -12,15 +12,23 @@ jobs: matrix: os: [ubuntu-20.04, macos-14, windows-2019, ubuntu-22.04-arm] python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] - torch-version: [2.6.0] # [2.5.0] - cuda-version: ['cpu', 'cu118', 'cu121', 'cu124', 'cu126'] + torch-version: [2.7.0] # [2.5.0, 2.6.0] + cuda-version: ['cpu', 'cu118', 'cu121', 'cu124', 'cu126', 'cu128'] exclude: - torch-version: 2.5.0 python-version: '3.13' - torch-version: 2.5.0 cuda-version: 'cu126' + - torch-version: 2.5.0 + cuda-version: 'cu128' + - torch-version: 2.6.0 + cuda-version: 'cu121' - torch-version: 2.6.0 + cuda-version: 'cu128' + - torch-version: 2.7.0 cuda-version: 'cu121' + - torch-version: 2.7.0 + cuda-version: 'cu124' - os: macos-14 cuda-version: 'cu118' - os: macos-14 @@ -29,6 +37,8 @@ jobs: cuda-version: 'cu124' - os: macos-14 cuda-version: 'cu126' + - os: macos-14 + cuda-version: 'cu128' steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/cuda/cu128-Linux-env.sh b/.github/workflows/cuda/cu128-Linux-env.sh new file mode 100644 index 00000000..9029aa65 --- /dev/null +++ b/.github/workflows/cuda/cu128-Linux-env.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CUDA_HOME=/usr/local/cuda-12.8 +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" \ No newline at end of file diff --git a/.github/workflows/cuda/cu128-Linux.sh b/.github/workflows/cuda/cu128-Linux.sh new file mode 100644 index 00000000..7e0da467 --- /dev/null +++ b/.github/workflows/cuda/cu128-Linux.sh @@ -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.8.0/local_installers/cuda-repo-${OS}-12-8-local_12.8.0-570.86.10-1_amd64.deb +sudo dpkg -i cuda-repo-${OS}-12-8-local_12.8.0-570.86.10-1_amd64.deb +sudo cp /var/cuda-repo-${OS}-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/ + +sudo apt-get -qq update +sudo apt install cuda-nvcc-12-8 cuda-libraries-dev-12-8 +sudo apt clean + +rm -f https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-${OS}-12-8-local_12.8.0-570.86.10-1_amd64.deb diff --git a/.github/workflows/cuda/cu128-Windows-env.sh b/.github/workflows/cuda/cu128-Windows-env.sh new file mode 100644 index 00000000..22685fed --- /dev/null +++ b/.github/workflows/cuda/cu128-Windows-env.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CUDA_HOME=/c/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v12.8 +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/cu128-Windows.sh b/.github/workflows/cuda/cu128-Windows.sh new file mode 100644 index 00000000..32e3e64a --- /dev/null +++ b/.github/workflows/cuda/cu128-Windows.sh @@ -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.8 +export CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.0/local_installers +export CUDA_FILE=cuda_${CUDA_SHORT}.0_571.96_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}" diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 1f22fd88..93401d05 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -16,7 +16,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest, ubuntu-22.04-arm] python-version: [3.9] - torch-version: [2.5.0, 2.6.0] + torch-version: [2.5.0, 2.6.0, 2.7.0] steps: - uses: actions/checkout@v2 diff --git a/README.md b/README.md index 59e33b92..4f9ca6e0 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,23 @@ All included operations are broadcastable, work on varying data types, are imple We provide pip wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl). +#### PyTorch 2.7 + +To install the binaries for PyTorch 2.7.0, simply run + +``` +pip install torch-scatter -f https://data.pyg.org/whl/torch-2.7.0+${CUDA}.html +``` + +where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu126`, or `cu128` depending on your PyTorch installation. + +| | `cpu` | `cu118` | `cu126` | `cu128` | +|-------------|-------|---------|---------|---------| +| **Linux** | ✅ | ✅ | ✅ | ✅ | +| **Windows** | ✅ | ✅ | ✅ | ✅ | +| **macOS** | ✅ | | | | + + #### PyTorch 2.6 To install the binaries for PyTorch 2.6.0, simply run