I agree with you. The idea of being able to use GPU principles to thoughtfully offload work to the GPU is something I never learned. Would have been good to have seen some systematic overview of how to leverage the GPU alongside the CPU..
Conversation
I do wonder to what extent some of this was just frankly not widely known, though, or only known to some very particular set of experts, and everyone else was mostly guessing and hoping (also I think profiling in this space might be hard?)
1
2
I genuinely find the graphics applications really exciting, and they’re certainly the main reason I’d program a GPU, but my early forays into GPU programming were just riddled with confusion about what the hell I was doing, not understanding how everything actually fit together.
1
1
3
I played with SNES romhacking when I was a kid, and the graphics model was so much simpler to me, not just because it did less but because I could understand how the processes worked with one another. Learning about how modern systems work from a high level has helped a lot.
1
3
any particularly-good Racket libs for GPU hacking?
1
I don’t think so, but it would be nice. I’ve been playing with Vulkan in Rust.
1
4
thanks! Yeah, I started learning about supercomputing stuff recently. I think that area (understandably) has better intro material out there about what the parts are doing, and that's been a similar kind of different paradigm that also has interesting constraints
1
This Vulkan library for Rust has a super cool tutorial that starts by doing some compute stuff and shows how that can sort of gradually build up to the more specialized graphics pipeline, which I think is a really wonderful way of framing things. vulkano.rs/guide/introduc
1
2
11
you're right. This does look very nicely done. Also totally agreed that whenever I'd pick up a graphics book I couldn't make it more than 2-3 pages without having to understand kernels in vector spaces :P
1
I’ll admit to being woefully lacking in math education, and I know basically no linear algebra. It’s extremely possible that I’d find it interesting if I took an actual class that taught it well, but I always found it unbelievably boring when I tried to learn it for graphics.
3
2
I learned it by writing a linear algebra library. It’s fun to try to put everything into an interesting algebraic hierarchy. (Monoids, Vector spaces, Metric spaces, etc). Massive yak shave though.


