Why do computers need GPUs (integrated or external)? What information is the CPU sending to the GPU that it can’t just send to a display?

1.55K views

Why do computers need GPUs (integrated or external)? What information is the CPU sending to the GPU that it can’t just send to a display?

In: 219

41 Answers

Anonymous 0 Comments

The CPU is capable but contain a larger set of instructions, this slows things down creating wait times. The GPU has a handful of simple instructions that come in the form of shader programs. It’s able to process and reduce wait times due to efficiency

Anonymous 0 Comments

Computers don’t *need* GPUs. Older computers from the 80s sometimes didn’t have any GPU, and the CPU was responsible for redrawing what you see on the monitor.

The problem with that is that it costs a lot of CPU time to do so, redrawing all the pixels 50 or 60 times per second.

GPUs started out as nothing more than a helper chip(set) for the CPU, so it wouldn’t be doing the pixel pushing, but could do other stuff at the same time.

As what we wanted to see on the screen became more complex GPUs consequently also became more complex. First it was 2D acceleration to improve drawing windows and sprites on the screen, later 3D acceleration for obvious uses.

Or said in one line, CPUs are generalists so they can do the ‘anything’ computers are known for, GPUs are specialists so the CPU can continue doing generalist stuff, like instructing the GPU to ‘draw a rectangle there’, ‘move the sprite from here to here over X frames’, or ‘add a sphere to the 3D scene’.

Anonymous 0 Comments

The CPU sends the meshes (set of vertices) and textures (non-uniform colors that go in the area between vertices) to the GPU when the software is loaded. Those are saved in the GPU memory. They can be updated from time to time, but they are changed as rarely as possible.

For each frame, the CPU sends commands to show those meshes by sending their position, axis, and scale, and those textures by sending in between which vertices it should appear. The GPU gets all those objects from memory, put them in the good position, axis, and scale in RGB arrays, and combines them. Combining them includes having only the ones in the front if they are opaque, and doing some addition if they have some transparency. The GPUs can also compute the effects of lights, in particular using ray tracing, to determine the brightness of each pixel.

Here is some extra information: https://computergraphics.stackexchange.com/questions/12110/what-data-is-passed-from-the-cpu-to-the-gpu-each-frame

Anonymous 0 Comments

A GPU is almost like a separate computer inside your computer suited to one specific task. It’s like having a gaming console attached to your motherboard. A CPU can more or less do anything. After all an “integrated GPU” is really just the CPU doing the job of the graphics card as well as its own. The problem is that for most types of use for a PC, you don’t need a GPU at all. Office computers, casual users just browsing the web and watching movies, store computers etc don’t really need a GPU, because their tasks do not require lots of processing power. Conversely there’s some tasks/activities, like gaming, rendering, cad/cam software and others that do require a lot of processing power, a disproportionate amount compared to most other things. So the solution is to have a “separate” computer inside your computer, with its own processors and its own memory, dedicated to those tasks specifically and since software is written around this industry convention, the GPU will perform those tasks more efficiently. Something like a server, used for different tasks, won’t have a GPU at all, but it will have multiple CPUs and tons of storage space because that’s the kind of resources it needs for its tasks.

Anonymous 0 Comments

Computers technically don’t “need” a GPU. In fact, early home computers didn’t have them. The American NES and Japanese Famicom game consoles were one of the first to have GPU’s (then called the PPU).

The main advantages of this are…

1.) The GPU can process graphics information while the CPU handles other tasks, speeding up processing by acting as a digital carpool lane. In systems without this, programmers had to decide how much of a program’s processing went to executing code, and how much went to graphics and sound. Time spent on one of these was essentially taken away from the other two.

A common side effect of this is that older programs (particularly games) would frequently only use part of the screen, since fewer pixels or tiles meant less time needed for processing. Some early games on, for example, the Atari, would even remove lines on the left and right sides to further reduce graphics requirements.

2.) Because it only handles graphical data, the GPU can be optimized in ways the CPU can’t, allowing it to perform these calculations much faster than simply having, say, a second CPU running. This comes at the cost of being inefficient at, or even unable to perform, other calculations.

I remember reading a webpage/blog post where a 3D render was 30× faster when done with the GPU vs the CPU. This was ten or fifteen years ago.

TL;DR? It allows more data to be processed at once, and optimizes the processing of the particularly complex graphics calculations.

Anonymous 0 Comments

[removed]

Anonymous 0 Comments

The CPU is a general-purpose computer. It’s strength lies in being able to do any kind of calculation. A GPU is a specialized computer that’s optimised for the specific task of rendering 3D graphics, and does its job much faster as a result.

Anonymous 0 Comments

CPU can do everything. It’s one really smart and hard working guy just going off of endless instructions.

GPU is a collection of smart fast hard working guys all given portions of specific instructions and are told to start working at the same time.

Another analogy – CPU is me remodeling bathroom step by step in an apartment building. When done, I move to next one.

GPU is a bunch of guys all assigned small tasks all located in designated bathrooms in the apartment building.

Which one is overall faster?

Anonymous 0 Comments

Say you want to draw a circle with radius R in location X,Y on your screen. To do this in the CPU you would need to do all the math to figure out which pixels should light up and which should not in order to make the circle, and then send that pixel data to the monitor. This takes a lot of CPU resources and will generally be very slow.

What a GPU does is simplify common operations like this for the CPU. Instead of doing all the math, the CPU can send a command to the GPU to draw the circle with the same parameters, and the GPU will handle it automatically. This will free up the CPU to do other stuff. Additionally the GPU will have dedicated circuits in the chip that can do all the math and draw to the screen much faster than the CPU.

So technically yes the CPU could send direct to the display, but a separate GPU will accelerate a lot of the common math needed to draw the images to the screen.

Anonymous 0 Comments

Compare the author to the painter.

One inspires the other to create visual representation of the numbers and inputs.