Repository navigation
Commit 4b9dcbd
authored
ci: clean up recurring nightly optional-deps failures (#2968)
* 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.1 parent 5b26bcd commit 4b9dcbd
3 files changed
Lines changed: 89 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
467 | 467 | | |
468 | 468 | | |
469 | 469 | | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
470 | 478 | | |
471 | | - | |
472 | | - | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
473 | 496 | | |
474 | 497 | | |
475 | 498 | | |
| |||
495 | 518 | | |
496 | 519 | | |
497 | 520 | | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
498 | 524 | | |
499 | 525 | | |
500 | 526 | | |
| 527 | + | |
501 | 528 | | |
502 | 529 | | |
503 | 530 | | |
| |||
520 | 547 | | |
521 | 548 | | |
522 | 549 | | |
523 | | - | |
524 | | - | |
| 550 | + | |
| 551 | + | |
525 | 552 | | |
526 | 553 | | |
527 | 554 | | |
| |||
531 | 558 | | |
532 | 559 | | |
533 | 560 | | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
534 | 570 | | |
535 | 571 | | |
536 | 572 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
450 | 450 | | |
451 | 451 | | |
452 | 452 | | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
453 | 461 | | |
454 | | - | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
455 | 465 | | |
456 | | - | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
457 | 474 | | |
458 | 475 | | |
459 | 476 | | |
| |||
476 | 493 | | |
477 | 494 | | |
478 | 495 | | |
| 496 | + | |
479 | 497 | | |
480 | 498 | | |
481 | 499 | | |
| 500 | + | |
482 | 501 | | |
483 | 502 | | |
484 | 503 | | |
| |||
517 | 536 | | |
518 | 537 | | |
519 | 538 | | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
520 | 545 | | |
521 | 546 | | |
522 | 547 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
| 165 | + | |
165 | 166 | | |
166 | 167 | | |
167 | 168 | | |
168 | 169 | | |
| 170 | + | |
169 | 171 | | |
170 | 172 | | |
171 | 173 | | |
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
175 | 177 | | |
| 178 | + | |
176 | 179 | | |
177 | 180 | | |
178 | | - | |
| 181 | + | |
179 | 182 | | |
180 | 183 | | |
181 | 184 | | |
182 | 185 | | |
183 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
184 | 196 | | |
185 | 197 | | |
186 | 198 | | |
| |||
193 | 205 | | |
194 | 206 | | |
195 | 207 | | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
196 | 217 | | |
197 | 218 | | |
198 | 219 | | |
0 commit comments