Modern games have amazing graphics especially on the PC but not every computer can handle these graphics. Why is that? Well, graphics card! Obviously, the graphics card can go a very long way in providing us with extremely high graphics gaming experiences but how? What exactly is a GPU and how exactly is it different from a CPU? Why do we need one?
How Do Graphics Cards Work?
So, when new Battlefield games come out what does everybody talk about immediately? Of course, the graphics! It’s the thing you see first no matter what. You don’t get to see something else and say you’ve seen the game visually. What a game looks like, matters a great deal to us and what I like to talk about.
CPU vs GPU
There’s a lot of technical jargon behind what goes on in order to bring you representations of what’s going on in an imaginary world. So, to start off computers, a CPU and a GPU when described, sound pretty similar, they both do the math. They both solve problems and they give you a result that looks entirely different on a screen than it does inside a series of transistors and wires and processors bouncing electrical signals and saying yes or no over and over again at incredible rates.
So, to put it in the most simple possible words, a CPU can do things in a much more linear way than a GPU. A CPU may have a few cores: two, four, eight, or however many. The number really isn’t relevant but that’s the number of streams of operations that a CPU can do at a time one per core.
Now, it’s important that a CPU exists because some things that are very complex need a more dedicated architecture to continue to process those operations. But the way a GPU works through technologies like CUDA (Compute Unified Device Architecture) which was actually developed by Nvidia and is therefore not the only technology like this. But the principles that apply to CUDA basically apply to most GPU technologies if not all.
Also read, Radeon VII: AMD’s Next Gen 7nm graphics card
It’s kind of like and when I say kind of, I mean kind of like a lot of little CPUs. Now, the reason I say kind of and not exactly like is because the cores of a CPU can all be dedicated towards different problems whereas all of the sub-cores of a CUDA core have to be dedicated to a parallel problem like oh I don’t know graphics.
And that’s oversimplifying it just a little bit as graphics are several subroutines. But essentially a lot of little cores are solving somewhat simpler problems than what a CPU might be used for much faster. Because there are lots of them and what I mean by a simpler problem is like geometry. In all honesty, a geometry problem is really just a few computations and if you have a ton of cores dedicated to it at once, it’s gonna get solved really fast.
Geometry is just shapes and trajectories and variables that affect placement and angle and things like that. Easier things to do but when presented with a limited amount of cores, would kind of clog up the workflow.
Let’s say you’ve got an eight-core CPU and you’ve got a hundred different geometry problems to solve. Well, they each take up a core until you get through the hundred. But imagine if you send the same set of geometry problems to a multi-core graphics card with hundreds of sub-cores that are made for a specific purpose and that purpose is geometry.
To tackle that geometry as fast as it can with a horde of processors, well that would be generally looked at as a much more efficient way of doing things. Wouldn’t it? And that’s why a GPU is much better at rendering graphics than a CPU.
Sure, there’s nothing that would stop you from playing a game on CPU but there’s a reason why the CPU is generally used for things like artificial intelligence. Because they’re much more complex operations that take a longer period of time to do. When you have a limited number of data streams you want to be using the data streams in the most optimized way.
If you have one type of processor that has a limited amount of cores that are held up on specific things, you would probably want to throw the more complex singular operations towards that. Whereas, if you have a geometry-oriented problem that can be solved quickly and you have a lot of problems you would probably want to solve with lots and lots of small cores.
Also read, How to Easily Monitor Your CPU Temperature?
Like Jay-Z said, I’ve got 99 problems and they’re all geometry oriented and therefore easier to solve by a GPU. So, I’d like to send them that direction and it will handle it much faster than if I sent them towards the CPU. It was a really catchy Jay-Z song. I don’t know if you remember it but I do. There’s a while back, its ok if you don’t know.
Just Use GPU for All Problems?
It’s important to say that you couldn’t just throw anything you wanted at a GPU and do it faster. That’s just not true! Complex problems often involve multiple threads of information going on at once and as I said, on a GPU, the problems have to be parallel.
Well, if the problem diverts in some way from what one would consider parallel, it’s not something that a GPU is going to do very fast at all. The main reason it’s so good for graphics is it can do so much of one thing at once. Graphics routines are really straightforward and don’t go into uncharted territory too often.
What Kind of Problems then?
It’s not trying to simulate anything other than fairly straightforward processes. Like, if I drop an item, it falls. If wind hits the cloth, it does. If you look at the Sun, there’s lens-flare. So yeah, that type of stuff in which the result is always going to be same or very similar.
And stuff that is going to need to be done a lot like where all the vertices are, how many faces are painted in between them. A vertex being a corner on a shape and a face being a surface that’s drawn between three vertices that may be smooth or textured or orderly flat given that way cool retro look.
Now you know what a GPU is and why one uses it and what it does. Granted, this is actually a simplified version of all of this and there’s a lot of theory that can be talked about. I’m sure that will actually get in a deeper conversation if we all meet in the comments and open our bit traps to talk with each other. So, let’s do that!