Wheel of reincarnation
The term “wheel of reincarnation” was first coined in a paper by T.H. Myer and I.E. Sutherland named “On the Design of Display Processors”, and refers to the cycle, completed many times in computer history, of migrating some kind of work to special designed hardware in order to gain speed and liberating the CPU for other tasks, then this hardware becoming of more and more general purpose and powerful, and finally integrating it again into the CPU to simplify the architecture.
Let’s have now a brief look at 3d graphic cards history.
The first 3D graphic cards started in the early and mid-90’s and were only rasterizers, leaving all other tasks in the CPU. Later, in the late-90’s, the Transform and Lighting stage went to the graphic card too, allowing for greater detail scenes and to do more work on the CPU.
In the early-2000’s, they did a great step towards generalization, with the appearance of shaders (small programs executed for every vertex, every fragment or , more recently, for every primitive to be rendered). Shaders had to be very simple at first, with a very limited number of instructions, with lack of branching and other limitations, but over the years those limitations have been relaxing or disappearing.
The graphic cards, at that point already named “GPUs”, were specialized in the processing of floating point numbers, and so programmers solving numeric problems of this kind started to use them, and GPGPU (General Purpose Computing on Graphical Processing Units) was an expanding field.
As more kind of programmers were attracted to use GPUs to solve their problems, so were GPU companies to offer them more attractive technologies, and special languages to allow generic computations on the GPU started to appear, such as NVidia’s CUDA or OpenCL.
Now, with Intel’s GPU project, Larrabee, which is based in x86 processors, the difference between the CPU and hardware processing graphics will be reduced again, and the wheel of reincarnation in the graphic cards field is one step nearer to be completed.
Will it be finally closed? I think so. When? We will probably have to wait many years before getting enough powerful CPU as to host the usual computations of high-demanding applications such as last generation games and at the same time process their graphics rendering, which will be for sure way more advanced and complex than what it is currently.