We invented GPUs to be really, really good at the things that – up until then – only the computer processor was doing.
Basically, doing the same thing en-masse to a lot of data at the same time, e.g. matrix transformations, etc.
For a CPU, this basically was done one element at a time, and therefore doing it to a lot of elements (e.g. points in 3D space, say) would take a long time.
The GPU was invented – along with things like MMX and other instructions in more modern processors – to be able to, for example, “rotate all these 3D points 30° to the left” to 10,000 3D points and it would all take place much quicker. The GPU was basically designed to do lots of simple calculations, but to MANY, MANY bits of data all at the same time. The CPU was designed to do ANYTHING, including complex calculations, but to only a few bits of data at the same time.
For most things you want to do, the CPU is fine. For 3D graphics (especially nowadays because it’s so incredibly complex, and 3D scenes can have MILLIONS of 3D points that have to be manipulated, etc.) you want a GPU.
But, of course, GPUs move on and programmes get very complex and so sometimes the GPU you have just isn’t powerful enough or doesn’t have the features you need to render the newest graphics.
There you can “fall back” to making the CPU do the same calculations. Slower. Takes up for more CPU resources from everything else you want to do, but it’ll work and may even be able to do what your old GPU isn’t capable of. Normally your CPU would be doing other things (in a game, it will be handling the AI, the sound, reading input, processing the data of the game, etc. etc. etc.). When you make it do the graphics too, then it will slow everything down because it has too much to do.
GPUs used to be called 3D accelerators for a reason. They are specifically designed to speed up what the CPU could do itself – nowadays they are basically essential and even your basic computer has a GPU of some kind in it (we call it integrated graphics in that case) – and they handle things like 3D graphics, video decoding and physics calculations. All things that you can treat in the same kind of “do one simple thing, but do the same thing to ten-million data points at the same time” way, which a processor would struggle with.
And while the CPU can do ANYTHING, including the GPUs job, it will never be as fast as a proper GPU is at doing it.
Latest Answers