A more recent GPU paper that deep-dives into NVidia Volta through microbenchmarks. This penetrates deeply into black-box magic, showing off and reverse-engineering NVidia’s SASS assembly of the machine itself (below the PTX-assembly layer the typical CUDA programmer would be familiar with).
It is clear that the NVidia Volta GPU architecture includes memory barriers figured out by the PTX->SASS compiler, and I feel like I got a sense of what the instruction-scheduler of Volta (the chip itself) was doing.
Though this is an advanced read, it is one of the few online resources I’m aware of that goes into the nitty-gritty of how NVidia’s popular GPUs actually work and execute code. Maybe not a “must read” for most GPU-programmers, but a useful read if you’re trying to grab every ounce of performance from an NVidia GPU.
This (along with the subsequent Turing paper) is an excellent resource!
Regarding reverse-engineering of SASS, a (possibly?) complete instruction “reference” (from Pascal to Hopper) can be found using methods here. Using quotes here because there is enough info to disassemble/assemble the code section in cubin binaries - since we have a detailed desc of inst encoding, operand types, modifiers etc… However, instruction behavior, misc requirements, side-effects, etc… are not documented.
subsequent Turing paper
linking it here for anyone interested: https://arxiv.org/pdf/1903.07486.pdf