Introduction to compute shaders
anteru.net
anteru.net
I just started poking at doing computer graphics "from scratch" (working my way up from ray tracers now). I know that modern graphics systems are huge and ultimately your C++ library or whatever is just gonna flip some bits on graphics-card registers/busses or something, but I was really hoping for some background on "here's a bit of code that asks the shader to add depth to a triangle" and then how that gets mapped back to the screen.
You'll have to implement each part yourself to understand them. It's not something that can be skimmed. But it's so worth it.
After that, most of the mystery of graphics will be gone. (But not the thrill.)
One of the most frustrating aspects of learning graphics programming was that most resources immediately start talking about theory. Partial derivatives of uv's and xy's, gradient values and mipmap selection, and you're just trying to draw a damn picture on a triangle. Learning from working code and implementing it yourself is a better teacher.
is a great intro to GPU architecture that I think answers your question indirectly.
It's mainly just command FIFOs, semaphores, and cache flushes. Vulkan's API is a pretty good high level approximation of current architecture.
The RTL can be found here [1]
The best part is the white paper [2], PDF
I had been looking around for information similar to ECS[3], building a GPU from first principles and MIAOW is one step closer that.
[0] http://miaowgpu.org/index.html
[1] https://github.com/VerticalResearchGroup/miaow
[2] https://raw.githubusercontent.com/wiki/VerticalResearchGroup...
It's also funny that Nvidia lists the total number of SIMD lanes as "CUDA cores", meaning that a single compute unit with 64 SIMD lanes counts as 64 CUDA cores. That's cheating, if you ask me :P
That sounds like manycore, not SIMD/SIMT, no?
Ctrl-F "volta SIMT model"