Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
702b7ec
Restore CI on the `12.9.x` branch (#798)
leofang Aug 5, 2025
e8d70d6
try to enable doc build in the backport branch
leofang Aug 5, 2025
6a8b80a
disable doc build on the backport branch (#802)
leofang Aug 5, 2025
c4aa8b1
Revert "try to enable doc build in the backport branch"
leofang Aug 5, 2025
4fa4d41
bump to 12.9.1 (#804)
leofang Aug 6, 2025
d1a166a
[Backport] Bump pathfinder to v1.1.0 (#806)
leofang Aug 6, 2025
f9fbd3b
Fix pathfinder imports and handle access (#814) (#816)
github-actions[bot] Aug 7, 2025
491720d
[Backport] Make populating the internal symbol table thread-safe (#836)
leofang Aug 18, 2025
5a13448
bump version (#842)
leofang Aug 18, 2025
a564211
Initial plan
Copilot Aug 21, 2025
ccc8b08
Backport PR #837: Add path for CUDA static library based on CUDA_HOME
Copilot Aug 21, 2025
48834d2
Merge pull request #878 from NVIDIA/copilot/fix-21f2f756-b6f8-4159-96…
Andy-Jost Aug 21, 2025
2435550
Removes LIBRARY_PATH environment variable from installation docs (no …
github-actions[bot] Aug 21, 2025
62f73aa
Backport #865 to 12.9.x (#900)
mdboom Aug 25, 2025
6a83341
CI: Fix pathfinder CI infrastructure and remove redundant component t…
Copilot Aug 26, 2025
0831d1f
Update permissions in test_cufile to use 600 instead of 644 (#910) (#…
github-actions[bot] Aug 27, 2025
1672638
Backport #914 and #894 to 12.9.x branch (#922)
mdboom Aug 28, 2025
3eeb68b
rerun codegen (#932)
leofang Aug 30, 2025
1d9a146
Fixing `cuda_bindings` local build errors manifesting with GCC-13 on …
github-actions[bot] Sep 5, 2025
cca1dbf
Backport #937 to 12.9.x branch (#943)
mdboom Sep 5, 2025
3508f75
Use CTK 12.9.1 for `cuda-bindings` 12.9.x (#955)
kkraus14 Sep 11, 2025
f86b3fb
refactor: replace none equality checks with `is`/`is not` equivalents…
cpcloud Sep 15, 2025
8b8b84c
Remove llvmlite from `test` dependencies in cuda_bindings/pyproject.t…
github-actions[bot] Sep 19, 2025
553adf7
Backport #962 and #969 to 12.9.x (#992)
mdboom Sep 19, 2025
e1fe60a
chore: sync test-matrix to `main` (#1004)
cpcloud Sep 22, 2025
cef4cf8
ci: remove spurious free-threading builds (#1006)
cpcloud Sep 23, 2025
e2b9f60
Backport removal of pywin32 to 12.9.x (#1044)
mdboom Sep 29, 2025
41420f9
Backport #986 & #1005 (#1042)
leofang Sep 29, 2025
9b579bc
test_nvvm.py simplification / use `llvmlite` in `toolshed/` only (#10…
github-actions[bot] Oct 1, 2025
cc8f6d6
ci: replace single gating check with vanilla skipping (#1008) [no-ci]…
cpcloud Oct 1, 2025
1b578c2
bump version (#1099)
leofang Oct 7, 2025
fe4d1b2
build: backport ftcompat fix
cpcloud Oct 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .github/workflows/build-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ jobs:
- "3.11"
- "3.12"
- "3.13"
- "3.13t"
- "3.14"
- "3.14t"
name: py${{ matrix.python-version }}
runs-on: ${{ (inputs.host-platform == 'linux-64' && 'linux-amd64-cpu8') ||
(inputs.host-platform == 'linux-aarch64' && 'linux-arm64-cpu8') ||
Expand Down Expand Up @@ -116,6 +119,7 @@ jobs:
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --namespace-pkg cuda -w {dest_dir} {wheel}"
CIBW_ENVIRONMENT: >
CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }}
CIBW_ENABLE: "cpython-freethreading"
with:
package-dir: ./cuda_core/
output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
Expand Down Expand Up @@ -157,14 +161,13 @@ jobs:
# CIBW mounts the host filesystem under /host
CIBW_ENVIRONMENT_LINUX: >
CUDA_PATH=/host/${{ env.CUDA_PATH }}
LIBRARY_PATH=/host/${{ env.CUDA_PATH }}/lib
CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }}
CIBW_ENVIRONMENT_WINDOWS: >
CUDA_HOME="$(cygpath -w ${{ env.CUDA_PATH }})"
LIB="${CUDA_HOME}\\lib\\x64;${LIB}"
CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }}
CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel"
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --namespace-pkg cuda -w {dest_dir} {wheel}"
CIBW_ENABLE: "cpython-freethreading"
with:
package-dir: ./cuda_bindings/
output-dir: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
Expand Down Expand Up @@ -224,6 +227,12 @@ jobs:
with:
# workaround for actions/runner-images#12377 (the cached 3.13.4 is buggy on Windows)
python-version: ${{ matrix.python-version == '3.13' && '3.13.5' || matrix.python-version }}
# allow prereleases only fetches prereleases for unreleased versions of Python
allow-prereleases: true

- name: verify free-threaded build
if: endsWith(matrix.python-verison, 't')
run: python -c 'import sys; assert not sys._is_gil_enabled()'

- name: Set up Python include paths
run: |
Expand Down
116 changes: 90 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
push:
branches:
- "pull-request/[0-9]+"
- "main"
- "12.9.x"

jobs:
ci-vars:
Expand All @@ -23,7 +23,7 @@ jobs:
CUDA_BUILD_VER: ${{ steps.get-vars.outputs.cuda_build_ver }}
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
- name: Get CUDA build version
Expand All @@ -32,89 +32,153 @@ jobs:
cuda_build_ver=$(jq -r .cuda.build.version ci/versions.json)
echo "cuda_build_ver=$cuda_build_ver" >> $GITHUB_OUTPUT

build:
should-skip:
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.get-should-skip.outputs.skip }}
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Compute whether to skip builds and tests
id: get-should-skip
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euxo pipefail
if ${{ startsWith(github.ref_name, 'pull-request/') }}; then
skip="$(gh pr view "$(grep -Po '(\d+)$' <<< '${{ github.ref_name }}')" --json title --jq '.title | contains("[no-ci]")')"
else
skip=false
fi
echo "skip=${skip}" >> "$GITHUB_OUTPUT"

# WARNING: make sure all of the build jobs are in sync
build-linux-64:
needs:
- ci-vars
- should-skip
strategy:
fail-fast: false
matrix:
host-platform:
- linux-64
name: Build ${{ matrix.host-platform }}, CUDA ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}
if: ${{ github.repository_owner == 'nvidia' && !fromJSON(needs.should-skip.outputs.skip) }}
secrets: inherit
uses: ./.github/workflows/build-wheel.yml
with:
host-platform: ${{ matrix.host-platform }}
cuda-version: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}

# WARNING: make sure all of the build jobs are in sync
build-linux-aarch64:
needs:
- ci-vars
- should-skip
strategy:
fail-fast: false
matrix:
host-platform:
- linux-aarch64
name: Build ${{ matrix.host-platform }}, CUDA ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}
if: ${{ github.repository_owner == 'nvidia' && !fromJSON(needs.should-skip.outputs.skip) }}
secrets: inherit
uses: ./.github/workflows/build-wheel.yml
with:
host-platform: ${{ matrix.host-platform }}
cuda-version: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}

# WARNING: make sure all of the build jobs are in sync
build-windows:
needs:
- ci-vars
- should-skip
strategy:
fail-fast: false
matrix:
host-platform:
- win-64
name: Build ${{ matrix.host-platform }}, CUDA ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}
if: ${{ github.repository_owner == 'nvidia' }}
if: ${{ github.repository_owner == 'nvidia' && !fromJSON(needs.should-skip.outputs.skip) }}
secrets: inherit
uses: ./.github/workflows/build-wheel.yml
with:
host-platform: ${{ matrix.host-platform }}
cuda-version: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}

test-linux:
# WARNING: make sure both Linux test jobs are in sync
test-linux-64:
strategy:
fail-fast: false
matrix:
host-platform:
- linux-64
- linux-aarch64
name: Test ${{ matrix.host-platform }}
if: ${{ github.repository_owner == 'nvidia' }}
permissions:
contents: read # This is required for actions/checkout
needs:
- ci-vars
- build
- build-linux-64
secrets: inherit
uses: ./.github/workflows/test-wheel-linux.yml
with:
build-type: pull-request
host-platform: ${{ matrix.host-platform }}
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}
matrix_filter: "map(select([.CUDA_VER // empty | split(\".\")[] | tonumber] as $v | ($v[0] < 13)))"

test-windows:
# WARNING: make sure both Linux test jobs are in sync
test-linux-aarch64:
strategy:
fail-fast: false
matrix:
host-platform:
- win-64
- linux-aarch64
name: Test ${{ matrix.host-platform }}
if: ${{ github.repository_owner == 'nvidia' }}
permissions:
contents: read # This is required for actions/checkout
needs:
- ci-vars
- build
- build-linux-aarch64
secrets: inherit
uses: ./.github/workflows/test-wheel-windows.yml
uses: ./.github/workflows/test-wheel-linux.yml
with:
build-type: pull-request
host-platform: ${{ matrix.host-platform }}
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}
matrix_filter: "map(select([.CUDA_VER // empty | split(\".\")[] | tonumber] as $v | ($v[0] < 13)))"

doc:
name: Docs
test-windows:
strategy:
fail-fast: false
matrix:
host-platform:
- win-64
name: Test ${{ matrix.host-platform }}
if: ${{ github.repository_owner == 'nvidia' }}
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
id-token: write
contents: write
pull-requests: write
contents: read # This is required for actions/checkout
needs:
- ci-vars
- build
- build-windows
secrets: inherit
uses: ./.github/workflows/build-docs.yml
uses: ./.github/workflows/test-wheel-windows.yml
with:
build-type: pull-request
host-platform: ${{ matrix.host-platform }}
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }}
matrix_filter: "map(select([.CUDA_VER // empty | split(\".\")[] | tonumber] as $v | ($v[0] < 13)))"

checks:
name: Check job status
permissions:
checks: read
runs-on: ubuntu-latest
needs:
- build
- test-linux
- test-linux-64
- test-linux-aarch64
- test-windows
- doc
secrets: inherit
uses: ./.github/workflows/status-check.yml
# we don't build docs on the backport branch, see #809
steps:
- name: Exit
run: exit 0
13 changes: 11 additions & 2 deletions .github/workflows/guess_latest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,27 @@
# URL to search
URL="https://developer.download.nvidia.com/compute/cuda/redist/"

# Ensure exactly one argument is provided
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <CUDA_major_version>"
exit 1
fi

# Accept major version as the first argument
MAJOR_VERSION="$1"

# Fetch the directory listing and extract the latest version number
get_latest_version() {
# Get the HTML content of the page
local html_content=$(wget -q -O - "$URL")

# Extract links matching the pattern redistrib_?.?.?.json
local files=$(echo "$html_content" | grep -oP 'redistrib_[0-9]+\.[0-9]+\.[0-9]+\.json' | cut -d'"' -f2)
local files=$(echo "$html_content" | grep -oP "redistrib_${MAJOR_VERSION}\.[0-9]+\.[0-9]+\.json" | cut -d'"' -f2)

# If files were found, extract the version numbers and find the latest
if [ -n "$files" ]; then
# Extract just the version numbers using regex
local versions=$(echo "$files" | grep -oP 'redistrib_\K[0-9]+\.[0-9]+\.[0-9]+(?=\.json)')
local versions=$(echo "$files" | grep -oP "redistrib_\K${MAJOR_VERSION}\.[0-9]+\.[0-9]+(?=\.json)")

# Sort the versions and get the latest
local latest_version=$(echo "$versions" | sort -V | tail -n 1)
Expand Down
Loading
Loading