Exactly.<p>GPUs were designed to run thousands of threads, CPUs to run only a few of them.
CPU cores do branch predictions and instructions reordering to save latency. GPU cores do not. When they need to wait, they instead pause the thread and resume some other thread on the same core.<p>GPUs were designed to execute the same code on many threads, CPUs to ran arbitrary code on each thread.
Each CPU core has instruction fetch, instruction decode, and branching modules. For GPU cores, there’s only one fetch&#x2F;decode&#x2F;branch modules per many cores (32 on nVidia).<p>This 2 factors are among the reasons why we have 4 cores in $200 mid-range desktop CPUs, and 1024 cores in $200 mid-range desktop GPU.