Expand description
ANOMALIES A56 diagnostic: record every GPU op a step enqueues, so two consecutive steps can be diffed.
A CUDA graph BAKES the grid, block, shared-mem and argument BYTES of every launch at capture time. So a captured region is replayable if and only if two consecutive executions of it enqueue byte-identical ops. Anything that differs between step N and step N+1 is a host value the graph froze — which is exactly the class of bug where the capture pass is byte-exact but the replay is not.
This turns “which host scalar leaked into a kernel argument?” from a code
read into a mechanical diff. Off unless begin() is called.
Structs§
- Entry
- One enqueued op.
kindseparates kernels from memsets/copies so an op appearing or vanishing shows up as a kind mismatch rather than arg noise.
Functions§
- begin
- end_
and_ diff - Stop recording and diff this trace against the previous one. Returns
Noneon the first call (nothing to compare against yet), else a report naming every op that differs. - name_
kernel - Remember a kernel handle’s name. Called from the backend’s
kernel()lookup, which runs at init only. - on
- record