Anyone who has studied electrical engineering will know that with the right tools, know-how, and a lot of patience, it is possible to design a basic CPU from scratch. Of course, it's not like today's processors, but what about GPUs? Sure they make no difference, yes, 1 determined software engineer decided to do it, but it turned out to be a lot harder than you thought.
Adam Majmudar has documented his trials and tribulations (via Tom's Hardware) on Twitter, starting with learning the basics behind central processor architecture first, before moving on to creating a full CPU. It's obviously not the kind of chip you can buy for your gaming PC, it's the kind of chip I learned decades ago to design
Modern software packages and hardware description languages simplify the process considerably, but it's still a big challenge.
Majmudar successfully flashed and decided it was time to do the same on the GPU. After all, the basic structure of a shader unit consists of several registers for storing data, another unit for loading and storing that data, and
Engineers quickly noticed that the Cpu and Gpu share a lot in common, but the latter is very different in how memory is used and threads are managed. In other words, we didn't design systems like triangle setup, Tmu, Rop, or the numerous fixed-function circuits that graphics card chips have.
But to his credit, his basic GPU design was able to perform a few instructions and crunch through some matrix calculations in software simulations, eventually working after solving many problems with the help of others. His CPU and GPU designs come in physical form through the Tiny Tapeout project.
The best part about Majmudar's work is that he shares the entire project on Github.
Anyone can learn to program a GPU, just because all of the necessary tools are readily available online, learning how to design a shader unit at the transistor level to follow is not publicly available to any of the big three chip makers (AMD, Intel, Nvidia). Not sharing such information
Well, if you forgive me, I'm turning off to design a GPU with 100,000 shaders. What name would I have to sell it under — Raforce? Gedeon "Know my skills, GeFarce, I think, will be more appropriate.
Comments