Module launch_trace

Module launch_trace 

Source
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. kind separates 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 None on 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