Basic Graphics Processing Unit (GPU) design concepts

Reading time: 30 minutes

A graphics processing unit (GPU) is a processor like CPU and TPU for faster graphics processing. Specifically, it designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer to be displayed on a screen.

The parallel structure of a GPU makes it more efficient for algorithms where several components can be executed in parallel such as Machine Learning algorithms/ inference.

In this article, we have explored some of the basic architecture concepts in Graphics Processing Unit (GPU).

Graphics Pipeline

This image summaries the graphics pipeline in a GPU:

graphics pipeline in GPU

You need to understand the following ideas:

  • Vector processing
  • Primitive Processing
  • Rasterization
  • Fragment processing
  • Pixel operations

Vector processing

Each vector is transformed in screen space and processed independently.

vector processing in GPU

Primitive Processing

The vertices are organized into primitives that are clipped.

primitive processing in GPU

Rasterization

Primitives are rasterized into “pixel fragments”. Each primitive is rasterized independently.

rasterization in GPU

Fragment processing

Fragments are shaded to compute a color at each pixel. Each fragment is processed independently.

fragment processing in GPU

Pixel operations

Fragments are blended into the frame buffer at their pixel locations (z-buffer determines visibility).

pixel operations in GPU

There are five pipeline entities:

  • Vertices
  • Primitives
  • Fragments
  • Shaded fragments
  • Pixels
five pipeline entities in GPU

Graphics architectures

In this section, we will take a look at how the Graphics pipeline is implemented and how the independent nature of the operations are maintained.

This image demonstrates the architecture of NVIDIA GeForce 8800 developed in 2006:

NVIDIA GeForce 8800 architecture

The above architecture uses the concept of unified shading which is a significant improvement over the basic CPU architecture and is one of the secrets of GPU's speed.

Shader programming model

Shader programming model follows the following ideas:

  • Fragments are processed independently but there is no explicit parallel programming

  • Independent logical sequence of control per fragment.

Shader programming and improvements in this field gives GPU an enormous boost in speed. Check out this article to understand the intuition behind Shader Programming in CPU