The first film walked through the execution model as eight diagrams. This one tells the same story as one continuous shot, from the point of view of a single thread: element 2,690 of a kernel called mix, which adds two arrays and then does something different for odd and even elements. The camera never cuts. It starts on the CPU, follows the launch across the bus, dives into SM 10 down to one lane, rides a memory request out to a GDDR7 chip and back, and pulls out again.
The clock in the corner is real GPU time. The film runs at wildly different speeds, from a few million times slower than reality while the whole kernel runs, to billions of times slower at the branch, and the slow-motion factor tells you which. Blocks elsewhere on the chip keep landing and leaving on that same clock, so whenever the camera comes back to the die, the world has moved on consistently.
Keys: space play/pause · ← → acts · j / l five seconds · m sound · f full screen. Sound is off by default and entirely synthesized in your browser: no audio files.
Download the MP4 (720p, with sound), rendered frame by frame from this page.
Real: 48 SMs, 6 blocks of 256 threads per SM for this kernel (1,536-thread limit), 288 resident blocks and 3.6 waves, 4 schedulers with up to 12 warps each, 32-byte sectors, coalesced accesses becoming 4 sectors per warp, both paths of a divergent branch being issued, fire-and-forget stores, a few microseconds of launch latency. Staged: the exact nanosecond timings (a loaded memory round trip of ~800 ns and block lifetimes of ~1.5 µs are plausible for a memory-bound kernel, not measured), which DRAM chip holds a[2690], the on-chip route of a request, and the order in which the scheduler picks warps.