An interesting email was distributed from Roy Taylor of NVIDIA last week. It seems Roy believes that the GPU already does the bulk of the processing work a CPU is required to do. And he believes even more strongly that in the future the GPU will do even more.
The GPU is the graphics processing unit inside the video card. Modern day video cards enjoy all kinds of acceleration for displaying high resolution, full-framed video thanks to massive numbers of parallel processing engines on the inside, and a design which accommodates the massive memory bandwidth required to make video work. As a result, when there isn’t a lot to do on the GPU (such as when you’re not gaming), there are a lot of extra CPUGPU cycles that are going unused. As such, and with some modern software libraries which take advantage of these unused cycles, the GPU can turn its attention toward the more mundate tasks of computing real data.
The computation of that real data is often times much less efficient than the manner in which the specialized CPU computes. However, due to the fact that modern GPUs literally have 128 or more processing cores, what the CPU can do more efficiently, the GPU can do through brute force usually many dozens of times faster. An example of this is a sorting algorithm. The most efficient sorting algorithm for a single core can be determined based on the number of moves data items have to make to put everything in the right order. This can become very complex and there are variables which make some algorithms more efficient when the list is already “mostly sorted” or “hardly sorted”, etc. Still, this data can be determined. With the GPU’s massively parallel computing ability, it may not be the most efficient CPU-based algorithm that is the fastest. In fact, it isn’t. There are several parallel sorting algorithms which are truly inefficient. But, because so much is happening at the same time, they are amazingly fast overall.
What Taylor is suggesting boils down to this: eventually, it won’t be the big, central, CPU powerhouse that does the bulk of the processing work. It will be the little, central, CPU coordinator that does the bulk of setting up everything to be processed by the GPU. In such a design, the CPU will still be required, but not because it crunches all of the data. It will, at that time, only be instructing the GPU what to do, when to do it, and for how long to do it. Sounds great I suppose … my only question is in such a scenario will the computer sci-fi movies of the future incorporate the natural gaming inclination of those future machines in their “the machine has become self-aware … and started playing Call of Duty all by itself!” themes? I wonder.
On a side note, NVIDIA develops all of their next-generation hardware totally in simulation. By the time they reach A0 silicon (first silicon), the GPU, interface and everything electrical inside the video card itself, already has all of the bugs worked out of it, all of the drivers are written for it for major operating systems, and it is known to be working. In fact, NVIDIA sells A0 silicon right off the press. A recent interview I reviewed while working at TG Daily indicated that NVIDIA engineers would, in fact, be “very surprised” if a bug made it through to A0 silicon.
Read more about the CPU/GPU war at The Inquirer.