In my understanding GPUs do mostly parallel worloads: SIMD with limited code size, operating on the same batch loaded arrays, but also with massive local memory.
And CPUs do mostly serial workloads: code size can be gigantic, lots of indirection, can pipeline a handful of operations (computations but several inflight small data loads), complicated cache herarchy; with massive silicon areas dedicated to shortening this serial critical path (branch prediction, instruction reordering, speculative execution)
Is there a new paradigm that we could see emerge and go mainstream in a few years? We do away with branch prediction, instruction reordering, speculative execution, and instead we can have massive amount of small dumb independent cores. These could do their share of small independent loads and would have small amounts of local working memory, could share some data with nearby cores. It would be common for these to halt for a long time waiting for a load from RAM, but that'd be ok.
Could we see that appear? Would it get the performance increases GPUs get? What language and coding style would be best suited for that silicon? What would be the market drivers (certainly not matrix multiplication/AI, nor single-threaded performance which are GPU and CPU's unfair advantage respectively)?