Repository navigation
Track cuTile Rust v0.5.0 debugging candidates #1606
Description
Track the v0.5.0 debugging fixes and the remaining scope of each issue. Merge reviewed CUDA Rust PRs into main, then include them in release/v0.5.x.
Release scope: every v0.5.0 feature must work with CTK 13.5 or earlier.
Updated 2026-10-26. Updates have been pushed to the existing contributor forks, with current main integrated. Test evidence and remaining limitations are posted on each PR. No issue is closed merely because its candidate branch has been updated.
| Candidate | Issue coverage | Current evidence / remaining work |
|---|---|---|
#1385 (b25b4fe27) |
#1379 frontend generated-constant fallback; related to #1475 | Exact frontend/serialized origins remain strict. The assembler test reports only the reproduced tileiras 13.4.59/13.4.92 helper/inline loss as a warning, continuing to check surviving Rust locations; all other versions, including 13.5, remain strict. The full Tile workflow passes, including the previously failing CUDA 13.4 job. The actual CI assembler is 13.4.59; its missing helper information was also reproduced with #1480's optional test. All six frontend-origin tests fail without the compiler fix and pass with it. All applicable CI, including Rust CodeQL, passes: 25 passed and one expected deployment skip. Required review approval remains. This does not fix the backend loss. |
#1480 (899e14b9f) |
#1475 entry-wrapper and generated assumptions | Added Line/Full, exact nested caller-chain and assembled entry-instruction coverage, with fail-before/pass-after proof. All 11 debug tests pass; 13.2/13.4 Tile CI and semver pass. All applicable CI, including Rust CodeQL, passed; required approval remains. |
#1528 (64f0ebf4a) |
#1475 short-circuit/folded constants and const-bool bindings | Fixed callee-scope bool binding attribution. Added three exact Line/Full, cross-file and serialized-chain tests; negative controls fail as expected. Local assembler/GPU/GDB and Clippy pass; Tile CI passes. All applicable CI, including Rust CodeQL, passed; required approval remains. |
#1600 (a844d56ba) |
#1428 consistent debug mode and runtime overrides | Added v0.5.0 migration documentation/changelog. Environment-isolated tests, shared-cache normal-launcher GPU matrix and debugger tests pass. 13.2/13.4 Tile CI, semver and host checks pass. All applicable CI, including Rust CodeQL, passed; required approval remains. |
#1602 (main merge 9718b4386) |
#1475 arrays, reductions and relocated/deduplicated host-check origins | Already merged into main; included in draft release integration #1613. Combined exact-origin and assembler tests pass on 13.3. |
#1564 (a28eee3b4) |
SIMT/native NVVM debug metadata compatibility | All 26 debug exporter tests and strict Clippy pass on the stable pin; example CI passes. Existing author mixed native/Rust link evidence remains; it was not repeated in this update. All applicable CI, including Rust CodeQL, passed; required approval remains. |
#1582 (bec608b8d) |
SIMT line-info inline scopes | All 1,214 importer tests and Clippy pass; cooperative-groups GPU example passes. All 22 kernels have identical SASS instruction streams before/after the gate change in that workload. Example CI passes. All applicable CI, including Rust CodeQL, passed; required approval remains. |
Draft #1613 (a8d91829f) now combines these CUDA Rust candidates with current main and the #1516 → #1603 → #1604 host-runtime stack. It remains a draft for review of the combined source PRs; integration does not imply acceptance of the individual PRs. Combined debug/source-location/runtime-mode tests pass all 35 cases on CUDA 13.3, including live CUDA-GDB. Combined CPU and GPU suites and importer/exporter tests pass. After resolving local disk exhaustion, all 27 supported examples and eight benchmark smoke tests also pass (PDL is skipped on 13.3). #1528/#1564/#1582 are now ready for review. The latest update integrates #1385's exact-version test handling; 14 CPU debug tests and the Line/Full assembler regression pass on the combined branch. CodeQL alert #25 was dismissed as used in tests after confirming the explicit null_deref crash mode; the fixture and CodeQL scanning remain intact, and the old CodeQL check now passes. The new integration head passes all applicable CI: 69 checks passed and one expected deployment skip, including Rust CodeQL, CUDA 13.2/13.4, builds, tests, lints, documentation and examples. #1385 is also fully green (25 passed, one expected deployment skip). Both remain open; #1385 needs review approval and #1613 remains a draft integration awaiting review and acceptance. CTK 13.5 has not been validated here.
The earlier launch-overhead hold was stale: #1604 commit b811b7067, already included in #1613, reduced the reported individual-launch cost from 4.95 to 1.88 µs (earlier main baseline: 1.68 µs). Original fix/benchmark report. No fresh benchmark of the latest integration head or verified remaining performance blocker has been established in this debug audit. The blanket hold has been removed; the individual PR review requirements remain.
Release inclusion checklist (check only after merge and inclusion in release/v0.5.x):
- fix: correct cuTile source locations for generated constants #1385 generated-constant fallback
- fix(cutile): attribute generated entry setup to the user signature #1480 entry-wrapper source locations
- fix(cutile-compiler): preserve origins of short-circuit, folded and bool-binding constants #1528 short-circuit/folded-expression/const-bool locations
- cutile: one CodegenMode for device debug, plus CUTILE_JIT_* run-time overrides #1600 debug-mode/runtime override controls
- fix(cutile): retain source origins for generated code and host checks #1602 arrays/reductions/host-check origins
- Use NVVM debug metadata merge behavior for native LTO #1564 NVVM debug metadata compatibility
- Preserve inline source scopes in line-table debug info #1582 line-info inline scopes
- Complete release-branch CI and review of the combined candidates.
- After the accepted fixes are merged into
mainand included inrelease/v0.5.x, remind Melih to pass the prompt below to the internal model for CTK 13.5 profiling/debugging tests.
Remaining failures and uncovered scope:
- [BUG]: cuTile: at a
cuda_tile_assert!trap, cuda-gdb reports the module's first line and drops the inlined helper frames #1379: actual assertion SIGTRAP and reopened GPU-coredump line/frame attribution still needs the Tile IR backend fix and live/core evidence. No backend fix PR is identified. The frontend fallback PR must not close that remaining scope. - Validate helper-source/inline-frame behavior on CTK 13.5. The reproduced tileiras 13.4.59/13.4.92 loss is a documented backend limitation, with an exact-version warning in the assembler test. It is not fixed by fix: correct cuTile source locations for generated constants #1385, and its exception must not be broadened to 13.5 without investigation. Entry-location and frontend bytecode tests passing do not establish complete backend debugging fidelity.
- cuTile: audit generated source locations (optional follow-ups to #1379) #1475: close each sub-item only when its corresponding fix lands. Full-debug 13.3 reduction-line coalescing also remains a backend limitation; fix(cutile): retain source origins for generated code and host checks #1602 does not claim complete stepping accuracy.
All candidate and draft-integration CI has completed successfully at the heads listed above. The local suites use serial execution because of the previously documented warmup-cache ordering dependency. Benchmark smoke validation uses the existing temporary runner correction tracked separately in #1634.
Deferred beyond v0.5.0:
#1476 / NVIDIA/cuda-gdb#29 is not a v0.5.0 release requirement or blocker. That PR changes NVIDIA's debugger so a breakpoint on an inlined helper call stops before the helper runs instead of sliding to the next statement. It is still open; the proposed fix has not been merged into a public CUDA Toolkit release. Per Melih's release-scope decision, remove #1476 from the v0.5.0 milestone and track it separately until a public toolkit contains the fix. Leave the issue open. The CUDA 13.4 tileiras regression above is a separate compiler issue.
Prompt to forward after merge and release-branch inclusion:
On the actual
release/v0.5.xcandidate, add regression tests and validate profiling/debugging with CTK 13.5. Record the commit, toolkit/debugger versions, GPU and driver. Cover cuTile Line/Full/None modes and runtime overrides; Rust source correlation in Nsight Compute; generated constants, entry wrappers, arrays/reductions and nested cross-file inline helpers; CUDA-GDB breakpoints/stepping and assertion/GPU-coredump line/frame attribution. Map results to the remaining sub-issues in #1379/#1475 and add CPU/serialized-IR, assembler or GPU tests as appropriate. Investigate failures rather than extending the 13.4.59/13.4.92 exception. Use the debugger shipped with CTK 13.5; do not require NVIDIA/cuda-gdb#29 or a later toolkit. Report what is supported, what remains broken, and minimal reproducers for backend failures.
Activity