How come a CPU has very few cores compared to a GPU that has thousands of cores and what causes GPU cores to be so small?

675 views

How come a CPU has very few cores compared to a GPU that has thousands of cores and what causes GPU cores to be so small?

In: Technology

4 Answers

Anonymous 0 Comments

It’s how complicated the task is.

Do you need to do complicated artificial intelligence? Get a PhD to do it (the CPU).

Need a bunch of people who can fill in colors and shapes and easy calculations? Get the classroom of kindergarten students to do it (the many cores in the GPU)

Anonymous 0 Comments

In a CPU, the circuit that does the actual computations (let’s call it the ALU) is incredibly fast and the most important thing for CPU speed isn’t to make it faster, but to keep it fed with work to do and data to work on.

For this reason CPU cores have a ton of extra circuits whose job is to keep the ALU busy (caches, predictors, schedulers, buffers, …) which makes them *huge*.

GPUs don’t do that as much.
GPUs are designed to process pixels or triangles, and there are millions of them on a screen. The repetitive nature of the work done on a GPU means that most cores will work on the same kind of thing at the same time, and the circuit that feed them with instructions and data can be shared across cores.
And GPUs don’t care how long it takes for a single pixel to be computed, but rather how long it takes for the whole screen, each GPU core can afford to compute several pixels in parallel to amortize wait times (if the computation for a pixel has to wait for data from memory, the core can just switch to some other pixel).

**********

The resulting architecture is very different: instead of having big cores with their own ALU and a huge control circuit to make the ALU happy, The GPU has groups of cores that share the same control circuit. This means that they can have a lot more core and ALUs (because they don’t need as much control stuff), but that cores aren’t all independent and that they perform badly when trying to run sequential tasks.

Anonymous 0 Comments

CPU can perform several different operations. For example you can use a CPU to perform addition, multiplication, subtraction and division. Hence a CPU can do a large variety of operations but not very fast.

GPUs on the other hand can only do a handful of operations: addition operations and they do it extremely fast. They have thousands of small cores that can only do addition but much quicker than a CPU. So if you have a bunch of addition operations to be done, you send them over to your GPU and split them across all the thousands of cores and each core does the computation fast and quick.

Note the actual operations performed by a CPU and GPU have different names. I used addition, subtraction, etc because this is ELI5

Also Note GPU tasks are not exactly split across all the cores like I said. The actual mechanism is a bit more complicated.

Anonymous 0 Comments

CPUs are very general purpose, they can do lots of different operations (they have a large “Instruction Set”). GPUs on the other hand are very specialized in what the can do. This means that single GPU core is much smaller (and simpler) than a CPU core, but also that a GPU cannot do most of the things a CPU can,