Files
foxhunt/crates
jgrusewski ff0549972d fix: clear stale cudarc errors after CUDA Graph capture + raw post-graph ops
Root cause: graph capture disables event tracking, but cudarc's
record_err() stores errors from cuStreamWaitEvent on disabled events.
bind_to_thread() calls check_err() and returns the stored error,
blocking ALL subsequent cudarc API calls (launch, sync, memcpy).

Fix:
- check_err() before EMA kernel launch to consume stale errors
- Raw cuStreamSynchronize + cuMemcpyDtoH for post-graph readback
  (bypasses bind_to_thread entirely)
- Raw device pointers for EMA kernel args (bypasses device_ptr event wait)
- GPU-native cat bounds check (dst_start + n <= output.len())
- CUDA Graph always enabled (removed should_use_cuda_graph function)

4/5 DQN pipeline tests pass with CUDA Graph on RTX 3050.
5th (epsilon_greedy) passes individually, flaky in sequence.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 00:12:49 +01:00
..