From c6b34ea667c728f74465fb11c8c54596da3e3fba Mon Sep 17 00:00:00 2001 From: rusty1s Date: Thu, 6 Feb 2025 09:26:32 +0000 Subject: [PATCH 1/2] update --- .github/actions/setup/action.yml | 6 -- .github/workflows/nightly.yml | 88 ++++++++++++++------------- pyg_lib/csrc/classes/cuda/hash_map.cu | 25 +++++++- 3 files changed, 69 insertions(+), 50 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 09c8f6a6..1e91451d 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -57,12 +57,6 @@ runs: sed -i '1s/^/#if defined(__linux__) \&\& defined(__x86_64__)\n__asm__(".symver pow,pow@GLIBC_2.2.5");\n#endif\n/' third_party/METIS/libmetis/metislib.h shell: bash - - name: Fix cuCollections - if: ${{ (inputs.cuda-version != 'cpu') && (runner.os == 'Windows') }} - run: | - sed -i '37s|#define CUCO_CUDA_MINIMUM_ARCH .*|#define CUCO_CUDA_MINIMUM_ARCH 600|' third_party/cuCollections/include/cuco/detail/__config - shell: bash - - name: Install additional dependencies run: | pip install setuptools ninja wheel diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ca45f444..489d75ff 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,9 +1,13 @@ name: Nightly Wheels on: # yamllint disable-line rule:truthy - workflow_dispatch: - schedule: - - cron: "0 4 * * *" # Everyday at 4:00am UTC/8:00pm PST + # workflow_dispatch: + # schedule: + # - cron: "0 4 * * *" # Everyday at 4:00am UTC/8:00pm PST + push: + branches: + - master + pull_request: jobs: @@ -14,10 +18,10 @@ jobs: max-parallel: 10 fail-fast: false matrix: - os: [ubuntu-20.04, macos-14, windows-2019] - python-version: ['3.9', '3.10', '3.11', '3.12'] - torch-version: [1.13.0, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0, 2.5.0] - cuda-version: ['cpu', 'cu113', 'cu116', 'cu117', 'cu118', 'cu121', 'cu124'] + os: [windows-2019] + python-version: ['3.10'] + torch-version: [2.5.0] + cuda-version: ['cu118'] exclude: - torch-version: 1.13.0 python-version: '3.12' @@ -147,38 +151,38 @@ jobs: cd .. shell: bash - - name: Configure AWS - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: us-west-1 - - - name: Upload wheel - run: | - aws s3 sync dist s3://data.pyg.org/whl/nightly/torch-${{ matrix.torch-version }}+${{ matrix.cuda-version }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers - - boto3: - if: ${{ always() }} - needs: [wheel] - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: 3.9 - - - name: Install dependencies - run: | - pip install boto3 - - - name: Upload index - run: | - python ./.github/workflows/aws/upload_nightly_index.py - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # - name: Configure AWS + # uses: aws-actions/configure-aws-credentials@v1 + # with: + # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # aws-region: us-west-1 + + # - name: Upload wheel + # run: | + # aws s3 sync dist s3://data.pyg.org/whl/nightly/torch-${{ matrix.torch-version }}+${{ matrix.cuda-version }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers + + # boto3: + # if: ${{ always() }} + # needs: [wheel] + # runs-on: ubuntu-latest + + # steps: + # - name: Checkout repository + # uses: actions/checkout@v4 + + # - name: Set up Python + # uses: actions/setup-python@v5 + # with: + # python-version: 3.9 + + # - name: Install dependencies + # run: | + # pip install boto3 + + # - name: Upload index + # run: | + # python ./.github/workflows/aws/upload_nightly_index.py + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/pyg_lib/csrc/classes/cuda/hash_map.cu b/pyg_lib/csrc/classes/cuda/hash_map.cu index 264cf537..31eb85e5 100644 --- a/pyg_lib/csrc/classes/cuda/hash_map.cu +++ b/pyg_lib/csrc/classes/cuda/hash_map.cu @@ -1,8 +1,11 @@ #include #include -#include #include +#ifndef _WIN32 +#include +#endif + namespace pyg { namespace classes { @@ -22,6 +25,7 @@ struct HashMapImpl { virtual at::Tensor keys() = 0; }; +#ifndef _WIN32 template struct CUDAHashMapImpl : HashMapImpl { public: @@ -86,10 +90,12 @@ struct CUDAHashMapImpl : HashMapImpl { private: std::unique_ptr> map_; }; +#endif struct CUDAHashMap : torch::CustomClassHolder { public: CUDAHashMap(const at::Tensor& key, double load_factor = 0.5) { +#ifndef _WIN32 at::TensorArg key_arg{key, "key", 0}; at::CheckedFrom c{"CUDAHashMap.init"}; at::checkDeviceType(c, key, at::DeviceType::CUDA); @@ -99,9 +105,13 @@ struct CUDAHashMap : torch::CustomClassHolder { DISPATCH_KEY(key.scalar_type(), "cuda_hash_map_init", [&] { map_ = std::make_unique>(key, load_factor); }); +#else + TORCH_CHECK(false, "'CUDAHashMap' not supported on Windows"); +#endif } at::Tensor get(const at::Tensor& query) { +#ifndef _WIN32 at::TensorArg query_arg{query, "query", 0}; at::CheckedFrom c{"CUDAHashMap.get"}; at::checkDeviceType(c, query, at::DeviceType::CUDA); @@ -109,12 +119,23 @@ struct CUDAHashMap : torch::CustomClassHolder { at::checkContiguous(c, query_arg); return map_->get(query); +#else + TORCH_CHECK(false, "'CUDAHashMap' not supported on Windows"); +#endif } - at::Tensor keys() { return map_->keys(); } + at::Tensor keys() { +#ifndef _WIN32 + return map_->keys(); +#else + TORCH_CHECK(false, "'CUDAHashMap' not supported on Windows"); +#endif + } private: +#ifndef _WIN32 std::unique_ptr map_; +#endif }; } // namespace From df2d9f1a88e8c9e7a3b01c5c9cf80f6b62563615 Mon Sep 17 00:00:00 2001 From: rusty1s Date: Thu, 6 Feb 2025 10:07:54 +0000 Subject: [PATCH 2/2] update --- .github/workflows/building.yml | 32 +-------- .github/workflows/nightly.yml | 118 ++++++++++++--------------------- README.md | 82 +++++++++++------------ 3 files changed, 84 insertions(+), 148 deletions(-) diff --git a/.github/workflows/building.yml b/.github/workflows/building.yml index ab9d6fea..972885ed 100644 --- a/.github/workflows/building.yml +++ b/.github/workflows/building.yml @@ -14,7 +14,7 @@ jobs: python-version: ['3.9', '3.10', '3.11', '3.12'] # torch-version: [1.13.0, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0, 2.5.0] torch-version: [2.5.0] - cuda-version: ['cpu', 'cu113', 'cu116', 'cu117', 'cu118', 'cu121', 'cu124'] + cuda-version: ['cpu', 'cu117', 'cu118', 'cu121', 'cu124'] exclude: - torch-version: 1.13.0 python-version: '3.12' @@ -24,60 +24,30 @@ jobs: python-version: '3.12' - torch-version: 1.13.0 python-version: '3.11' - - torch-version: 1.13.0 - cuda-version: 'cu113' - torch-version: 1.13.0 cuda-version: 'cu118' - torch-version: 1.13.0 cuda-version: 'cu121' - torch-version: 1.13.0 cuda-version: 'cu124' - - torch-version: 2.0.0 - cuda-version: 'cu113' - - torch-version: 2.0.0 - cuda-version: 'cu116' - torch-version: 2.0.0 cuda-version: 'cu124' - - torch-version: 2.1.0 - cuda-version: 'cu113' - - torch-version: 2.1.0 - cuda-version: 'cu116' - torch-version: 2.1.0 cuda-version: 'cu117' - torch-version: 2.1.0 cuda-version: 'cu124' - - torch-version: 2.2.0 - cuda-version: 'cu113' - - torch-version: 2.2.0 - cuda-version: 'cu116' - torch-version: 2.2.0 cuda-version: 'cu117' - torch-version: 2.2.0 cuda-version: 'cu124' - - torch-version: 2.3.0 - cuda-version: 'cu113' - - torch-version: 2.3.0 - cuda-version: 'cu116' - torch-version: 2.3.0 cuda-version: 'cu117' - torch-version: 2.3.0 cuda-version: 'cu124' - - torch-version: 2.4.0 - cuda-version: 'cu113' - - torch-version: 2.4.0 - cuda-version: 'cu116' - torch-version: 2.4.0 cuda-version: 'cu117' - - torch-version: 2.5.0 - cuda-version: 'cu113' - - torch-version: 2.5.0 - cuda-version: 'cu116' - torch-version: 2.5.0 cuda-version: 'cu117' - - os: macos-14 - cuda-version: 'cu113' - - os: macos-14 - cuda-version: 'cu116' - os: macos-14 cuda-version: 'cu117' - os: macos-14 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 489d75ff..d12a1962 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,13 +1,9 @@ name: Nightly Wheels on: # yamllint disable-line rule:truthy - # workflow_dispatch: - # schedule: - # - cron: "0 4 * * *" # Everyday at 4:00am UTC/8:00pm PST - push: - branches: - - master - pull_request: + workflow_dispatch: + schedule: + - cron: "0 4 * * *" # Everyday at 4:00am UTC/8:00pm PST jobs: @@ -18,10 +14,10 @@ jobs: max-parallel: 10 fail-fast: false matrix: - os: [windows-2019] - python-version: ['3.10'] - torch-version: [2.5.0] - cuda-version: ['cu118'] + os: [ubuntu-20.04, macos-14, windows-2019] + python-version: ['3.9', '3.10', '3.11', '3.12'] + torch-version: [1.13.0, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0, 2.5.0] + cuda-version: ['cpu', 'cu117', 'cu118', 'cu121', 'cu124'] exclude: - torch-version: 1.13.0 python-version: '3.12' @@ -31,60 +27,30 @@ jobs: python-version: '3.12' - torch-version: 1.13.0 python-version: '3.11' - - torch-version: 1.13.0 - cuda-version: 'cu113' - torch-version: 1.13.0 cuda-version: 'cu118' - torch-version: 1.13.0 cuda-version: 'cu121' - torch-version: 1.13.0 cuda-version: 'cu124' - - torch-version: 2.0.0 - cuda-version: 'cu113' - - torch-version: 2.0.0 - cuda-version: 'cu116' - torch-version: 2.0.0 cuda-version: 'cu124' - - torch-version: 2.1.0 - cuda-version: 'cu113' - - torch-version: 2.1.0 - cuda-version: 'cu116' - torch-version: 2.1.0 cuda-version: 'cu117' - torch-version: 2.1.0 cuda-version: 'cu124' - - torch-version: 2.2.0 - cuda-version: 'cu113' - - torch-version: 2.2.0 - cuda-version: 'cu116' - torch-version: 2.2.0 cuda-version: 'cu117' - torch-version: 2.2.0 cuda-version: 'cu124' - - torch-version: 2.3.0 - cuda-version: 'cu113' - - torch-version: 2.3.0 - cuda-version: 'cu116' - torch-version: 2.3.0 cuda-version: 'cu117' - torch-version: 2.3.0 cuda-version: 'cu124' - - torch-version: 2.4.0 - cuda-version: 'cu113' - - torch-version: 2.4.0 - cuda-version: 'cu116' - torch-version: 2.4.0 cuda-version: 'cu117' - - torch-version: 2.5.0 - cuda-version: 'cu113' - - torch-version: 2.5.0 - cuda-version: 'cu116' - torch-version: 2.5.0 cuda-version: 'cu117' - - os: macos-14 - cuda-version: 'cu113' - - os: macos-14 - cuda-version: 'cu116' - os: macos-14 cuda-version: 'cu117' - os: macos-14 @@ -151,38 +117,38 @@ jobs: cd .. shell: bash - # - name: Configure AWS - # uses: aws-actions/configure-aws-credentials@v1 - # with: - # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # aws-region: us-west-1 - - # - name: Upload wheel - # run: | - # aws s3 sync dist s3://data.pyg.org/whl/nightly/torch-${{ matrix.torch-version }}+${{ matrix.cuda-version }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers - - # boto3: - # if: ${{ always() }} - # needs: [wheel] - # runs-on: ubuntu-latest - - # steps: - # - name: Checkout repository - # uses: actions/checkout@v4 - - # - name: Set up Python - # uses: actions/setup-python@v5 - # with: - # python-version: 3.9 - - # - name: Install dependencies - # run: | - # pip install boto3 - - # - name: Upload index - # run: | - # python ./.github/workflows/aws/upload_nightly_index.py - # env: - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + - name: Configure AWS + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-west-1 + + - name: Upload wheel + run: | + aws s3 sync dist s3://data.pyg.org/whl/nightly/torch-${{ matrix.torch-version }}+${{ matrix.cuda-version }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers + + boto3: + if: ${{ always() }} + needs: [wheel] + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.9 + + - name: Install dependencies + run: | + pip install boto3 + + - name: Upload index + run: | + python ./.github/workflows/aws/upload_nightly_index.py + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/README.md b/README.md index 088dfd1c..4b529893 100644 --- a/README.md +++ b/README.md @@ -34,47 +34,47 @@ where The following combinations are supported: -| PyTorch 2.5 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | | | ✅ | ✅ | ✅ | -| **Windows** | ✅ | | | | ✅ | ✅ | ✅ | -| **macOS** | ✅ | | | | | | | - -| PyTorch 2.4 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | | | ✅ | ✅ | ✅ | -| **Windows** | ✅ | | | | ✅ | ✅ | ✅ | -| **macOS** | ✅ | | | | | | | - -| PyTorch 2.3 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | | | ✅ | ✅ | | -| **Windows** | ✅ | | | | ✅ | ✅ | | -| **macOS** | ✅ | | | | | | | - -| PyTorch 2.2 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | | | ✅ | ✅ | | -| **Windows** | ✅ | | | | ✅ | ✅ | | -| **macOS** | ✅ | | | | | | | - -| PyTorch 2.1 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | | | ✅ | ✅ | | -| **Windows** | ✅ | | | | ✅ | ✅ | | -| **macOS** | ✅ | | | | | | | - -| PyTorch 2.0 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | | ✅ | ✅ | ✅ | | -| **Windows** | ✅ | | | ✅ | ✅ | | | -| **macOS** | ✅ | | | | | | | - -| PyTorch 1.13 | `cpu` | `cu113` | `cu116` | `cu117` | `cu118` | `cu121` | `cu124` | -|--------------|-------|---------|---------|---------|---------|---------|---------| -| **Linux** | ✅ | | ✅ | ✅ | | | | -| **Windows** | ✅ | | ✅ | ✅ | | | | -| **macOS** | ✅ | | | | | | | +| PyTorch 2.5 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | | ✅ | ✅ | ✅ | +| **Windows** | ✅ | | ✅ | ✅ | ✅ | +| **macOS** | ✅ | | | | | + +| PyTorch 2.4 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | | ✅ | ✅ | ✅ | +| **Windows** | ✅ | | ✅ | ✅ | ✅ | +| **macOS** | ✅ | | | | | + +| PyTorch 2.3 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | | ✅ | ✅ | | +| **Windows** | ✅ | | ✅ | ✅ | | +| **macOS** | ✅ | | | | | + +| PyTorch 2.2 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | | ✅ | ✅ | | +| **Windows** | ✅ | | ✅ | ✅ | | +| **macOS** | ✅ | | | | | + +| PyTorch 2.1 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | | ✅ | ✅ | | +| **Windows** | ✅ | | ✅ | ✅ | | +| **macOS** | ✅ | | | | | + +| PyTorch 2.0 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | ✅ | ✅ | ✅ | | +| **Windows** | ✅ | ✅ | ✅ | | | +| **macOS** | ✅ | | | | | + +| PyTorch 1.13 | `cpu` | `cu117` | `cu118` | `cu121` | `cu124` | +|--------------|-------|---------|---------|---------|---------| +| **Linux** | ✅ | ✅ | | | | +| **Windows** | ✅ | ✅ | | | | +| **macOS** | ✅ | | | | | ### Form nightly