What is a GPU?
Short answer: Graphics Processing Unit – a computer chip (or a part of one) that is responsible for processing graphic and video image data. To understand it, let’s begin by looking at the difference between it and the Central Processing Unit.
- Caveat: This is a very simplified discussion that conveys the general concepts but may not convey a precise model of modern chips.
The CPU (generally considered the “brains” of a computer) is responsible for running the overall computer system. It reads programs from memory and executes them. Using both built in (hardwired, or firmware based) and memory based instructions, it is responsible for scheduling all the different processes that want to run concurrently, responding to user inputs, sending data to various peripheral systems, maintaining levels of security, and so on.
In order to accomplish all this, the CPU has a very rich set of instructions that it understands, and this instruction set has been tuned over decades to handle this wide set of operations efficiently. It should be remembered that every processing unit can perform one and only one instruction at a time – or more accurately these days, one per core or thread. (Detail: actually, there are execution units that do perform several operations in a pipeline fashion, but the basic concept holds.)
Now a crescent wrench is a fine tool. Large and heavy, it is adjustable and therefore adaptable to many uses from plumbing to auto repair. If, however, you intend to remove your engine head, then you will be much better served with a speedy little ratchet with the proper socket. This one socket only fits a single size – but does it very well.
So too the GPU. It has a much smaller instruction set, but this is tuned to the types of mathematical operations that are needed for processing images, and – most importantly – it has lots of threads to run many operations in parallel.
Continue reading →