As long as there was a need for visual output on a computer, Graphical Processing Units (GPUs) existed. They provide the specific function of handling all the information to be output to the user as graphics.
Today’s graphical applications are demanding. GPUs are used for a variety of applications including video games and video processing applications. GPUs also perform well with many non-graphical applications like digital signal processing, machine learning applications, and cryptocurrency.
GPUs are separate architectures from CPUs and are used to take on more graphic-intensive jobs. Some CPUs come with GPUs included in their chip, while other CPUs require a GPU to be added as an external piece of hardware.
GPUs are SIMD architectures that focus on efficiently processing graphical data. Because of this, they differ from standard scalar and vector CPUs in the following ways:
- Operations on graphical data tend to be simple but at a very large scale so today’s GPUs have simpler functional units but a lot of them.
- GPU clock speeds lag way behind standard CPUs
- While processing branches, in general, is a challenge, GPUs are especially inefficient with applications involving branching.
Because of higher demand applications, GPU companies have evolved their architectures to address the specific nature of their workload: simple operations on a lot of data. To accomplish this the Single Instruction Multiple Thread (SIMT) architecture was created.
SIMT operates on data that needs simple processing. A single operation can be sent to many small processing units called threads. These threads synchronously process data in bulk. As design capabilities get better GPUs can handle more threads and therefore process more data.
Graphical processing units have come a long way. In the workspace, a GPU is turning binary data into Red, Green and Blue pixels for a graphics-based driving game.
While the goal of turning software data into visual data has remained the same, the resources needed have changed greatly. The quantity of data delivered to GPUs by various types of applications has driven the industry to get inspiration from vector processing to create an entirely new approach to the architecture.