4 ms·
Somewhat related I hope. Does anyone know a resource guide to learn methodically about GPUs? Let me see if I can explain my frustrations: 1. The usual recommen
by Ostrogodsky 5y ago
Somewhat related I hope. Does anyone know a resource guide to learn methodically about GPUs? Let me see if I can explain my frustrations:
1. The usual recommended books for beginners, although good miss what I need, yes I love building ray-tracers and rasterizers but I can finish the book and not have the slightest idea about how a GPU actually works
2. Books like H&P although excellent, treat GPUs as an after-thought in 1 extra chapter, and even the content is like 5-10 years behind.
3. The GPU gems series are too advanced for me, I get lost pretty quickly and quit in frustration
4. Nvidia, AMD resources are 50% advertising, 50% hype and proprietary jargon.
I suppose what I want does not exist, I want a guide that starting from a somewhat basic level (let's say assuming the reader took an undergraduate course in comp architecture) methodically explains how the GPU evolved into a complete separate type of computing architecture, how it works in the nitty gritty details, and how it is been used in different applications (graphics,ML,data processing, etc)
- flohofwoe 5y agoHere's a somewhat recent blog post I stumbled over which might be helpful: https://rastergrid.com/blog/gpu-tech/2021/07/gpu-architecture-types-explained/ https://rastergrid.com/blog/gpu-tech/2021/07/gpu-architectur... There isn't a lot of actual under-the-hood information though, because GPUs are closed IPs. So the information needs to be pieced together from the occasional conference talks, performance optimization advice from GPU vendors and what enthusiasts reverse engineer by poking GPUs through the 3D APIs.
- Ostrogodsky 5y agoThanks. Ok, hear me out because here it comes naive time. GPU demand will continue to grow exponentially in this decade (VR, Crypto or whatever remains from it,ML,Data Eng,Steam Deck, Laptops etc)Wouldnt it be possible for some multi-country/university/companies to create a totally open GPU specification ? That has happened already? I understand we are talking about a long time of research effort and billions $$ but I think the benefits for all would be incredible. Open hardware, open libraries, open drivers. Imagine a world with no Linux, a totally closed x86 fully owned by IBM, closed webGL. Where can I read more about efforts in this direction if they exist?
- HelloNurse 5y agoWhat would be the point, besides an unprecedented, enormously ambitious hardware design learning project? Executing shaders better than Nvidia and AMD is not likely. Selling good graphics adapters at competitive prices to concrete users is even less likely. Experiments with APIs would have a fatal adoption problem. Avoiding DRM, if legally feasible, would be less useful than spending the same resources to support Sci-Hub or improve laws. And of course for the more practical purpose of writing mere software, including Vulkan implementations, specifications are complete and open enough.
- flohofwoe 5y agoAn open GPU design would be great for the RaspberryPi for instance, even if performance wouldn't be competitive with NVIDIA or AMD (it really doesn't need to be). I think a "RISC-V, but for GPUs" would make a lot of sense, e.g. RISC-V met a similar scepticism in the beginning, yet it seems to quickly gain steam in the last few years.
- deleted 5y ago[deleted]
- raphlinus 5y agoI agree strongly with you about the need for good resources. Here are a few I've found that are useful. * A trip through the Graphics Pipeline[1] is slightly dated (10 years old) but still very relevant. * If you're interested in compute shaders specifically, I've put together "compute shader 101"[2]. * Alyssa Rosenzweig's posts[3] on reverse engineering GPUs casts a lot of light on how they work at a low level. It helps to have a big-picture understanding first. I think there is demand for a good book on this topic. [1]: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-... [2]: https://github.com/googlefonts/compute-shader-101 https://github.com/googlefonts/compute-shader-101 [3]: https://rosenzweig.io/ https://rosenzweig.io/
- Ostrogodsky 5y agoThank you, I will check them out. I remember having read an article by the smart young lady, I didnt understand half of it, hopefully I will get more this time..
- randomNumber7 5y agoI found this very helpful. It's a 140 pages book and explains relatively abstract how modern gpu hardware works and the programming model. General-Purpose Graphics Processor Architectures (Tor M. Aamodt) https://skos.ii.uni.wroc.pl/pluginfile.php/28568/mod_resource/content/2/General-purpose-graphics-processor-architectures.pdf https://skos.ii.uni.wroc.pl/pluginfile.php/28568/mod_resourc... > 4. Nvidia, AMD resources are 50% advertising, 50% hype and proprietary jargon. I found the Nvidia CUDA C Programming Guide very helpful...
- raphlinus 5y agoThanks, I was previously unaware of this reference. On a quick skim, it seems to be more of an outline of interesting research directions for GPU architecture than a synthesis of where things are, targeted at programmers. But it has lots of detail and is likely to be useful to lots of people!
- Ostrogodsky 5y agoThe book looks pretty great!,pretty much in spirit to what I wanted. It is very slim but it has a big bibliography so it is perfect as an initial roadmap.