>What information is the CPU sending to the GPU that it can’t just send to a display
It’s a bit like [this image](https://ufo3d.com/wp-content/uploads/2018/06/3d-modeling-and-rendering-car-interior.jpg). Very much simplified, you can think of the CPU sending information like this
* There are 3 vertices (points) at the x, y, z coordinates (340, 239, 485), (312, 285, 512), (352, 297, 482) that form a triangle.
* The vertices have these and those colors, textures, bump maps, reflective values, opacities etc.
* The camera looks at them from position (112, 756, 912) with this and that angle, viewport, zoom.
* There is a spotlight at (567, 88, 45) with this angle, shape, color, intensity. There is another one at (342, 1274, 1056).
And the GPU will come up with
* What is the RGB color of pixel 1234, 342 on the display.
As others have answered, the CPU *could* do this, but the CPU is optimized for doing a bit of everything, and the GPU is optimized for doing a lot of floating point (decimal value) calculations in parallel.
The CPU is the brain of your computer. It can do everything.
The GPU is a specialized idiot savant. It can only do one type of thing but it can do it really good.
The GPU is good at a certain type of math problem that is needed to create 3D images.
The CPU can do that sort of math too, but since it isn’t specialized for it, it isn’t as good at it. The CPU isn’t as fast at that sort of thing.
The type of math the GPU does well is sometimes useful for other things too, like mining Crypto or certain types of simulations.
CPU cores each run a different program.
GPU cores all run the *same* program at the same time, but each core operates on different data. They are much slower and more basic than a CPU core, but also much smaller (because they don’t need all of the same parts) so you can have thousands of them. Because of that, you can use them to crunch a large amount of repeated calculations very quickly. This is used for mostly for the per-pixel calculations for your display, but they can be also used for other things too like AI training (or Bitcoin mining if you hate the environment.)
A CPU is a dremel: can be used for a lot of different tasks and pretty good at most of them.
A GPU is a chainsaw: far more narrow in what its useful for but far more efficient for that what it is good at.
And while you could cut down a tree with a dremel, there are good reasons to use a chainsaw, especially if you need to cut down a certain number of trees per hour.
The greatest analogy I heard in that regard is to see the CPU as a couple of professors, each calculating difficult equations, while the GPU is a large group of toddlers each coloring a square.
Of course the professors could also color the squares, but they would just waste their potential since they are able to perform much more difficult tasks. It’s simply more efficient to let the couple of professors do the hard work, while the large group of toddlers works on coloring the squares.
Nothing. Your CPU can do everything your GPU can. At like, 1:100000000th the speed. Do you want to play your games at about 1 frame every 3 minutes? Then use your CPU.
Then why have a CPU? Why not just a GPU? Because to make the GPU do the type of math that is needed to draw images very very very very fast, it has to be made poopy at other kinds of math. This isn’t a software problem either, it’s a hardware problem. IE the little squiggles we etch into crystals to zot electricity through to make the crystal think for us need to be drawn in certain ways to work how we want, and we can’t have two doodles overlapping each other.
A CPU can do almost anything, but it’s slow because of it. A GPU can do graphics (and certain types of AI work) very very very fast, but can’t do anything else quickly (or in some cases, at all). So you need both. Unless you don’t give a hoot about fancy graphics and are okay with your computer being able to produce graphics that are on par with 80s and VERY early 90s PC graphics only.
Another point is that even if the GPU would do very little computing, you would need *something* able to communicate between your screen and your computer. This is similar to external sound cards and network cards, although these are not so common these days because for most users the integrated cards are fine.
TLDR: the gpu is specialized in tasks needed for rendering. That way the cpu doesn’t have to do all the work and can do other tasks instead that the gpu isn’t capable of doing.
My best eli5:
You have two workers. One can do everything but not particularly fast. The other can draw really good but can’t do anything else.
Of course you could have the first worker do everything, but that would be slow. Instead you have the first one do all the story and background, and the second guy just for drawings, so that the first has time
For other stuff
A bit more technical:
In a really rudimentary CPU you have a component that adds things together. Now let’s say you want to multiply two numbers. You could do that by simply adding several times.
If you do that you block the component that adds for quite a while. So instead you make a new component dedicated to multiplying. Now you can simultaneously add something while something else is being multiplied.
So you’re dedicating a component to a specific task in order to have more performance. And this goes way further. Anything you gpu does your cpu can too. But it’s like the multiplying: if the cpu does everything the gpu does Them is occupied a lot and can’t work on other tasks.
The GPU has components for tasks that are very common for rendering. So you take the entire workload of rendering an image away from the cpu and shove it onto the gpu. Now your cpu is free to do other things that the gpu can’t.
So yes, you can run a computer with just a cpu. But this cpu would constantly be occupied with rendering, and while its doing that it can’t do other stuff. You end up with a lot less performance.
Latest Answers