Simple, they make different tradeoffs to target different tasks. GPUs are horrible at code that is branch heavy, CPUs tend to be much better at that kind of code. GPUs make trade offs for fast memory access, ever hear of a GPU with 32GB ram? and vice versa.
Right, they can fit so many cores on a chip because they are very optimized for one type of work (streaming vector math) and don't have things like branch-predictors that would make them good for general purpose work.
GPUs are great crunching numbers and CPUs are better with complex logic stuff...
And GPUs have a lot of simplified cores they simply can't handle every operation a CPU core can. Maybe you can get a hybrid
hardware... replacing the space used for CPU cores by GPU cores and some kind of fast access memory...
Simple, they make different tradeoffs to target different tasks. GPUs are horrible at code that is branch heavy, CPUs tend to be much better at that kind of code. GPUs make trade offs for fast memory access, ever hear of a GPU with 32GB ram? and vice versa.