Of CPUs and GPUs and FPUs and APUs

After looking at AMD’s new APUs combining CPU and GPU recently I asked the question “What is the point of integrating the GPU with the CPU when having the GPU in the motherboard chipset does just as well?” I had a couple of suggestions, including that it moved the GPU (a big heat source) under the main heatsink which might allow for better cooling. Now I have had a think about it some more and have realised a couple of other things.

Now that the memory controller is built in to most CPUs, moving the GPU in there too might allow faster and lower-latency memory access. Although probably still slower than having a dedicated GPU with GDDR5 RAM, the latency to access raw data from main memory will be improved.

More importantly, however, is the growing trend of offloading number-crunching tasks to the GPU using NVIDA’s CUDA or AMD’s OpenCL. Currently this is limited to software that has specifically been coded to make us of this function. Some high-end video editing effects plugins, video compression, Photoshop plugins, and some large scientific models are about all that make use of this. It looks like more and more things will be converted to make use of the extra power over time.

Since using the GPU marks a shift from using the CPU, the CPU could be simplified as these tasks move out. Current CPUs include plenty of Single Instruction Multiple Data (SIMD) instructions that could be replaced by GPU functions. The GPU can take care of both integer and floating point operations, so potentially the FPU could also be done away with. Actually, in AMD’s new FX Bulldozer architecture CPUs there is only one FPU between each pair of CPUs and so I wonder if this is because FPUs are less needed than main cores, or because of an intention to move floating point functions away from the CPU.

When you look at everything that can be moved from the CPU to the GPU, integrating the GPU in the heart of the computer suddenly seems like a much more sensible idea. I can envisage a time when CPU and GPU cores come in pairs (or 2 cores per GPU, or whatever the best ratio is) and the CPUs are much simpler devices without SSE SIMD instructions or FPUs. I know that it is AMD’s intention to make an APU combining Bulldozer with a GPU; perhaps we will see a Bulldozer-like design where the FPU in each CPU-pair module is replaced by a GPU.

Is this feasible?


Author: Latentexistence

The world is broken and I can't fix it because I am broken. I can, however, rant about it all and this is where I do that when I can get my thoughts together. Most of the time you'll find my words on Twitter rather than here though. I sometimes write for Where's The Benefit too.