Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
f842321
Move driver and nvrtc cython and internal layers to new generator
mdboom Apr 24, 2026
992998a
Fix Cython interop tests
mdboom Apr 24, 2026
6b1d2d3
Handle headers differently
mdboom Apr 24, 2026
be5d972
Fix compilation
mdboom Apr 24, 2026
2d7c8dd
Make const match
mdboom Apr 24, 2026
f664c86
Fix compilation again
mdboom Apr 24, 2026
00ea580
Attempt to fix Windows build
mdboom Apr 25, 2026
9982e06
Fix Windows again
mdboom Apr 25, 2026
6bf0565
Fix not found error code
mdboom Apr 29, 2026
103c29f
Merge remote-tracking branch 'upstream/main' into driver-v2
mdboom Apr 29, 2026
591d101
Look up pointers in a different way
mdboom Apr 29, 2026
7119b96
Get first version right
mdboom Apr 29, 2026
0d7171c
Get first appearing versions correct
mdboom Apr 29, 2026
9bb9f5a
Fix weird special case
mdboom Apr 29, 2026
bcf5683
Merge remote-tracking branch 'upstream/main' into driver-v2
mdboom Jun 9, 2026
af70308
Fix exception signature to match what was there before
mdboom Jun 10, 2026
6a4655d
Merge remote-tracking branch 'upstream/main' into driver-v2
mdboom Jun 10, 2026
e5460c8
Also fix exception declaration in nvrtc
mdboom Jun 10, 2026
2275890
Merge branch 'main' into driver-v2
mdboom Jun 10, 2026
186c394
Merge branch 'main' into driver-v2
mdboom Jun 10, 2026
0155f57
Merge branch 'main' into driver-v2
mdboom Jun 11, 2026
7dbeaa0
Fix PTDS and add PTDS testing
mdboom Jun 11, 2026
3aec179
Update .gitignore
mdboom Jun 11, 2026
0a1a49d
Merge branch 'main' into driver-v2
mdboom Jun 11, 2026
c294d66
Merge branch 'main' into driver-v2
mdboom Jun 11, 2026
13f5106
Add missing 13.3 APIs
mdboom Jun 12, 2026
1a87ff3
Merge remote-tracking branch 'origin/driver-v2' into driver-v2
mdboom Jun 12, 2026
836d5a9
Correctly update all files
mdboom Jun 12, 2026
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
6 changes: 6 additions & 0 deletions .github/workflows/test-wheel-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,12 @@ jobs:
SKIP_BINDINGS_TEST_OVERRIDE: ${{ inputs.skip-bindings-test && '1' || '0' }}
run: ./ci/tools/env-vars test

- name: Apply extra matrix environment variables
if: ${{ matrix.ENV }}
env:
MATRIX_ENV: ${{ toJSON(matrix.ENV) }}
run: echo "$MATRIX_ENV" | jq -r 'to_entries[] | "\(.key)=\(.value)"' >> "$GITHUB_ENV"

- name: Download cuda-pathfinder build artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/test-wheel-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,13 @@ jobs:
shell: bash --noprofile --norc -xeuo pipefail {0}
run: ./ci/tools/env-vars test

- name: Apply extra matrix environment variables
if: ${{ matrix.ENV }}
env:
MATRIX_ENV: ${{ toJSON(matrix.ENV) }}
shell: bash --noprofile --norc -xeuo pipefail {0}
run: echo "$MATRIX_ENV" | jq -r 'to_entries[] | "\(.key)=\(.value)"' >> "$GITHUB_ENV"

- name: Download cuda-pathfinder build artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
Expand Down
12 changes: 2 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,23 @@ __pycache__/
cache_driver
cache_runtime
cache_nvrtc
cuda_bindings/cuda/bindings/_lib/utils.pxi

# CUDA Python specific (auto-generated)
cuda_bindings/cuda/bindings/_bindings/cydriver.pxd
cuda_bindings/cuda/bindings/_bindings/cydriver.pyx
cuda_bindings/cuda/bindings/_bindings/cyruntime.pxd
cuda_bindings/cuda/bindings/_bindings/cyruntime.pyx
cuda_bindings/cuda/bindings/_bindings/cyruntime_ptds.pxd
cuda_bindings/cuda/bindings/_bindings/cyruntime_ptds.pyx
cuda_bindings/cuda/bindings/_internal/_nvml.pyx
cuda_bindings/cuda/bindings/_internal/driver.pyx
cuda_bindings/cuda/bindings/_internal/nvrtc.pyx
cuda_bindings/cuda/bindings/_internal/cufile.pyx
Comment thread
mdboom marked this conversation as resolved.
cuda_bindings/cuda/bindings/_internal/nvfatbin.pyx
cuda_bindings/cuda/bindings/_internal/nvjitlink.pyx
cuda_bindings/cuda/bindings/_internal/nvml.pyx
cuda_bindings/cuda/bindings/_internal/nvvm.pyx
cuda_bindings/cuda/bindings/_lib/utils.pxd
cuda_bindings/cuda/bindings/_lib/utils.pyx
cuda_bindings/cuda/bindings/cydriver.pxd
cuda_bindings/cuda/bindings/cydriver.pyx
cuda_bindings/cuda/bindings/cyruntime.pxd
cuda_bindings/cuda/bindings/cyruntime.pyx
cuda_bindings/cuda/bindings/cyruntime_functions.pxi
cuda_bindings/cuda/bindings/cyruntime_types.pxi
cuda_bindings/cuda/bindings/driver.pxd
cuda_bindings/cuda/bindings/driver.pyx
cuda_bindings/cuda/bindings/runtime.pxd
cuda_bindings/cuda/bindings/runtime.pyx
cuda_bindings/cuda/bindings/utils/_get_handle.pyx
Expand Down
10 changes: 8 additions & 2 deletions ci/test-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@
# install scripts swap the driver themselves).
# - DRIVER: 'earliest' does not work with CUDA 12.9.1
# - DRIVER: a custom version is not supported with FLAVOR=wsl on Linux.
# - ENV: optional map of extra environment variables to inject into the test
# job. Every key/value pair is written to GITHUB_ENV after the standard
# environment-variable setup step, so the variables are visible to all
# subsequent steps (including the cuda.bindings and cuda.core test
# steps). Example:
# ENV: { CUDA_PYTHON_PER_THREAD_DEFAULT_STREAM: '1' }

linux:
pull-request:
Expand All @@ -33,7 +39,7 @@ linux:
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.9.1', LOCAL_CTK: '0', GPU: 'rtxpro6000', GPU_COUNT: '1', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '13.0.2', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '13.3.0', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.9.1', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.9.1', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest', ENV: { CUDA_PYTHON_PER_THREAD_DEFAULT_STREAM: '1' } }
- { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '13.0.2', LOCAL_CTK: '0', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '13.3.0', LOCAL_CTK: '0', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.9.1', LOCAL_CTK: '0', GPU: 'v100', GPU_COUNT: '1', DRIVER: 'latest' }
Expand Down Expand Up @@ -107,7 +113,7 @@ windows:
- { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '13.3.0', LOCAL_CTK: '1', GPU: 'a100', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'TCC' }
- { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.9.1', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'TCC' }
- { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '13.0.2', LOCAL_CTK: '0', GPU: 'rtxpro6000', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'MCDM' }
- { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '13.3.0', LOCAL_CTK: '0', GPU: 'rtxpro6000', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'MCDM' }
- { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '13.3.0', LOCAL_CTK: '0', GPU: 'rtxpro6000', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'MCDM', ENV: { CUDA_PYTHON_PER_THREAD_DEFAULT_STREAM: '1' } }
- { ARCH: 'amd64', PY_VER: '3.14', CUDA_VER: '12.9.1', LOCAL_CTK: '0', GPU: 'v100', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'TCC' }
- { ARCH: 'amd64', PY_VER: '3.14', CUDA_VER: '13.0.2', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'MCDM' }
- { ARCH: 'amd64', PY_VER: '3.14', CUDA_VER: '13.3.0', LOCAL_CTK: '1', GPU: 'l4', GPU_COUNT: '1', DRIVER: 'latest', DRIVER_MODE: 'MCDM' }
Expand Down
7 changes: 0 additions & 7 deletions cuda_bindings/build_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,6 @@ def _get_cuda_path() -> str:
# Header parsing helpers (called only from _build_cuda_bindings)

_REQUIRED_HEADERS = {
"driver": [
"cuda.h",
"cudaProfiler.h",
],
"runtime": [
"driver_types.h",
"vector_types.h",
Expand Down Expand Up @@ -449,9 +445,6 @@ def _cleanup_dst_files():
cuda_bindings_files = [f for f in cuda_bindings_files if "cufile" not in f]
sources_list = [
# private
(["cuda/bindings/_bindings/cydriver.pyx", "cuda/bindings/_bindings/loader.cpp"], None),
# cynvrtc.pyx is now in cuda/bindings/ (pre-generated by cybind),
# picked up by the cuda_bindings_files glob below.
(["cuda/bindings/_bindings/cyruntime.pyx"], static_runtime_libraries),
(["cuda/bindings/_bindings/cyruntime_ptds.pyx"], static_runtime_libraries),
# utils
Expand Down
Loading