CPU is a very powerful unit which can run any instructions been given. Circuit inside is builded to handle every kind of computing. GPU, on the contrast side, only runs very specify instruction through specify API such as DirectX or OpenGL etc.... There are specify circuits been designed to execute such instructions.
When a task can been done by dedicated circuit, such as GPU, it only takes few clock cycle to complete. If you leave such task to CPU, it might take much more clock cycle to get it done.
Apple had been very poor implement GPU related function, such as GPU h.264 decode. Leave many Macs to handle h.264 decode to power-hog CPU, not GPU. Leading to high CPU usage, raising temperature and lower battery life in OSX.
That's why only when Apple finally released API for 3'rd party to access GPU h.264 decode, Flash and VLC then improve their performance. BTW, so far Apple only implement GPU h.264 decode on IGP such as 9400M and 320M. Mac user who have a powerful discrete GPU, such as GTS130 HD5750, still using CPU to handle h.264 decode. It really sucks.........