Skip to content

[no-ci] Refreeze enum tables (revert 2383, add comment) - #2792

Merged
rwgk merged 4 commits into
NVIDIA:mainfrom
rwgk:refreeze_enum_tables
Sep 9, 2026
Merged

rwgk merged 4 commits into
NVIDIA:mainfrom
rwgk:refreeze_enum_tables

Conversation

@rwgk

@rwgk rwgk commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Description

The first commit here is merely: git revert 3df6115

See comment added in the second commit (e253173) for rationale.


The equivalent of PR #2796 was included as a 3rd commit (673016b) here for testing. The CI succeeded:

PR #2796 was merged into main first, then main was merged here.

Merging this CI with [no-ci] based on the previous successful CI.

@rwgk rwgk added this to the cuda.bindings 13.4.0 & 12.9.8 milestone Sep 9, 2026
@rwgk rwgk self-assigned this Sep 9, 2026
@rwgk rwgk added bug Something isn't working cuda.core Everything related to the cuda.core module labels Sep 9, 2026
@github-actions github-actions Bot added the CI/CD CI/CD infrastructure label Sep 9, 2026

@mdboom mdboom left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mdboom
mdboom enabled auto-merge (squash) September 9, 2026 19:56
@github-actions

This comment has been minimized.

@rwgk rwgk changed the title Refreeze enum tables (revert 2383, add comment) [no-ci] Refreeze enum tables (revert 2383, add comment) Sep 9, 2026
@rwgk
rwgk enabled auto-merge (squash) September 9, 2026 22:55
@rwgk
rwgk merged commit 7b89d2c into NVIDIA:main Sep 9, 2026
26 checks passed
@rwgk
rwgk deleted the refreeze_enum_tables branch September 9, 2026 23:15
@github-actions

This comment has been minimized.

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor
Doc Preview CI
Preview removed because the pull request was closed or merged.

leofang added a commit to leofang/cuda-python that referenced this pull request Sep 30, 2026
test_frozen_driver_table_covers_all_curesult_members was removed on
main by NVIDIA#2792 (2026-09-09) but neither cuda-core-v1.2.0 nor v1.2.1
carry the revert. main cuda-bindings 13.4.1 adds three new CUresult
members (MULTICAST_RESOURCE_FULL, INSUFFICIENT_LOADER_VERSION,
FABRIC_NOT_READY) not present in the frozen table those releases
ship, so the nightly-cuda-core job trips it on every run.

Mirror the existing v1.0.1 NvlinkVersion pattern with a
version-gated --deselect that drops automatically once the next
cuda-core release ships the NVIDIA#2792 revert.
leofang added a commit that referenced this pull request Sep 30, 2026
* ci: pin numpy<2.5 for nightly-numba-cuda and add cccl for numba-cuda-mlir

Two targeted fixes for the recurring failures tracked in #2748:

- nightly-numba-cuda: pin numpy<2.5. numba-cuda 0.30.4 references
  np.row_stack, removed in NumPy 2.5, so every nightly numba-cuda
  job crashes at collection. Tracked upstream in
  NVIDIA/numba-cuda#907; drop the cap once a fixed wheel is on
  PyPI.

- nightly-numba-cuda-mlir: add cccl to cuda-toolkit extras. NVRTC
  currently fails with "catastrophic error: cannot open source
  file 'nv/target'" when compiling cooperative_groups/details/info.h
  and curand_kernel.h; the cccl extra pulls nvidia-cuda-cccl, which
  drops the missing header at nvidia/cu13/include/nv/target.

* TEMP: add push trigger to ci-nightly.yml to verify fix on this PR

Revert before merging. Same trick as
8d51cf7

* ci: deselect frozen-driver-table test on released cuda-core <=1.2.1

test_frozen_driver_table_covers_all_curesult_members was removed on
main by #2792 (2026-09-09) but neither cuda-core-v1.2.0 nor v1.2.1
carry the revert. main cuda-bindings 13.4.1 adds three new CUresult
members (MULTICAST_RESOURCE_FULL, INSUFFICIENT_LOADER_VERSION,
FABRIC_NOT_READY) not present in the frozen table those releases
ship, so the nightly-cuda-core job trips it on every run.

Mirror the existing v1.0.1 NvlinkVersion pattern with a
version-gated --deselect that drops automatically once the next
cuda-core release ships the #2792 revert.

* ci: skip numba-cuda IPC tests and mlir test_device_record_copy

nightly-numba-cuda: switch from `python -m numba.runtests` to `pytest`
(numba-cuda's own CI uses pytest; PR #1987 landed the runtests form as a
bring-up fix) so we can skip individual tests. Two workarounds:

- pin pytest<9 (matches upstream's numba-cuda cap; NVIDIA/numba-cuda#637
  covers the subTest breakage on 9).
- --ignore-glob "**/test_ipc.py" — numba-cuda v0.30.4 accesses
  CUipcMemHandle.reserved, which cuda-bindings intentionally removed;
  numba-cuda is EOL upstream so no fix is coming (#2748).

nightly-numba-cuda-mlir: add --deselect for
TestCudaDeviceRecordWithRecord.test_device_record_copy — the WithRecord
fixture uses np.recarray (uninitialized memory), so when the float32
field encodes a NaN, `np.testing.assert_equal` trips on NaN != NaN even
though the copy round-trip is correct. Filed upstream as
NVIDIA/numba-cuda-mlir#341.

* ci: move pytest<9 pin for numba-cuda into ci/tools/run-tests

Keeps pip constraints in the install step alongside numpy<2.5,
instead of a separate `pip install` in the workflow.

* ci: downgrade pytest to <9 as a second pip call for numba-cuda

cuda_core's test-cuXX group hard-pins pytest==9.1.0, so pip can't
satisfy that and pytest<9 in one solve. Split the numba-cuda pytest
pin into a second `pip install "pytest<9"` after the main install.

* ci: use --import-mode=importlib for numba-cuda pytest run

Default `prepend` import mode walks up until it finds a directory
without `__init__.py`. numba-cuda's on-disk layout is
`site-packages/numba_cuda/numba/cuda/tests/...`, and `numba/` here is
a namespace subdir with no `__init__.py`, so pytest treats it as the
rootpath and imports each test file as `cuda.tests.<...>`. That
collides with cuda-bindings' top-level `cuda` package (which has no
`tests` subpackage), giving `ModuleNotFoundError: No module named
'cuda.tests'` at collection.

`--import-mode=importlib` sidesteps the sys.path walk and imports
each test module by its correct dotted path.

* ci: run numba-cuda tests from checked-out source, mirroring mlir

Same shape as the numba-cuda-mlir step. run-tests exposes
NUMBA_CUDA_VER; the workflow checks out NVIDIA/numba-cuda at the
matching tag and runs pytest from numba-cuda-released/testing/, so
upstream's testing/pytest.ini kicks in
(consider_namespace_packages=true + --pyargs numba.cuda.tests) and
we stop caring about the site-packages namespace-package layout.

Also mirror the wheel-only gate: in wheels mode, set
NUMBA_CUDA_TEST_WHEEL_ONLY=1 so numba-cuda skips tests that need
CTK executables. Binary-generated tests self-skip via
`@unittest.skipIf(not NUMBA_CUDA_TEST_BIN_DIR, ...)`, so no
`make -j` step is needed — mirrors mlir, which has no Makefile.

Drops the --import-mode=importlib workaround from the prior commit;
pytest.ini's consider_namespace_packages does the job.

* ci: swap --ignore-glob for -k 'not TestIpc' in numba-cuda pytest

pytest's --ignore-glob="**/test_ipc.py" didn't match through the
--pyargs-resolved site-packages path (5 tests still ran and failed
with the CUipcMemHandle.reserved AttributeError on linux-64). Match
by class name instead — the affected tests live in TestIpcMemory
and TestIpcStaged, both starting with "TestIpc", so this is
unambiguous.

* Revert "TEMP: add push trigger to ci-nightly.yml to verify fix on this PR"

This reverts commit 4363950.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working CI/CD CI/CD infrastructure cuda.core Everything related to the cuda.core module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants