by fgblanch on 4/25/24, 5:36 AM with 73 comments
by userbinator on 4/25/24, 1:43 PM
Except for Intel, which publishes lots of technical documentation on their GPUs: https://kiwitree.net/~lina/intel-gfx-docs/prm/
You can also find the i810/815 manuals elsewhere online, but except for an odd gap between that and the 965 (i.e. missing the 855/910/915/945) for some reason, they've been pretty consistent with the documentation.
by ginko on 4/25/24, 9:46 AM
I know the terminology has gotten quite loose in recent years with Nvidia & Co. selling server-only variants of their graphics architectures as GPUs, but the "graphics" part of GPU designs make up a significant part of the complexity, to this day.
by jgarzik on 4/25/24, 11:49 AM
Here's another: https://github.com/jbush001/NyuziProcessor
by piotrrojek on 4/25/24, 10:34 AM
by vineyardlabs on 4/25/24, 3:56 PM
by novaRom on 4/25/24, 12:43 PM
by mk_stjames on 4/25/24, 1:32 PM
It's so easy to write "DIV: begin alu_out_reg <= rs / rt; end" in your verilog but that one line takes a lotta silicon. But the person simulating this might not never see that if all they do is simulate the verilog.
by Narishma on 4/25/24, 10:15 AM
by Jasper_ on 4/25/24, 12:44 PM
> In real GPUs, individual threads can branch to different PCs, causing branch divergence where a group of threads threads initially being processed together has to split out into separate execution.
Whoops. Maybe this person should try programming for a GPU before attempting to build one out of silicon.
Not to mention the whole SIMD that... isn't.
(This is the same person who stapled together other people's circuits to blink an LED and claimed to have built a CPU)