I had just read an interesting write-up today on the possible reasons behind the death of Larrabee – Intel’s next-generation home-grown graphics processor designed to open up the world of CPU-GPU computing and to kill both ATI and NVIDIA in graphics. Needless to say, the article was very juicy but regardless of its factual truth, it did provide me an insight or two into the cut-throat world of graphics processing.
Graphics is hard! That is why there are only two major companies leading the high end graphics chips and two companies at the low end. From a technical perspective, a graphics processor is at the opposite end of the spectrum from a general-purpose microprocessor. It is a different beast entirely. This got me thinking – it might be fun to do a graphics processor project on my own – on a small scale of course. This got my brain churning, which is always a good thing.
If I were to design a graphics processor of my own, I would first start with a half-precision or smaller word-length. This would keep the computational units small. I would further simplify the hardware by synchronising all the computational units to operate in lock-step with each other. Operation scheduling would be controlled in software. As long as the graphics processor is simple enough to push out pixels are a fairly decent rate, I would already be really happy. It might be all that is necessary for running a certain class of software, particularly if paired with my existing processor. At the very least, it would be fun to do and interesting to learn.
Now, if I could only get my hands on some graphics processor architecture books or sample hardware designs or even some publicly available data sheets on some older chips.