3. Introduction
A Graphics Processing Unit (GPU) is a microprocessor that
has been designed specifically for the processing of 3D
graphics.
The processor is built with integrated transform, lighting,
triangle setup/clipping, and rendering engines, capable of
handling millions of math-intensive processes per second.
GPUs form the heart of modern graphics cards, relieving
the CPU (central processing units) of much of the graphics
processing load.
4. Why GPU?
To provide a separate dedicated graphics
resources including a graphics processor and
memory.
To relieve some of the burden of the main system
resources, namely the Central Processing Unit,
Main Memory, and the System Bus, which would
otherwise get saturated with graphical operations
and I/O requests.
5. What is a GPU?
A Graphics Processing Unit or GPU (also
occasionally called Visual Processing Unit or
VPU) is a dedicated processor efficient at
manipulating and displaying computer graphics .
Like the CPU (Central Processing Unit), it is a
single-chip processor.
6. HOWEVER,
The abstract goal of a GPU, is to enable a
representation of a 3D world as realistically as
possible. So these GPUs are designed to provide
additional computational power that is customized
specifically to perform these 3D tasks.
7. GPU vs CPU
A GPU is tailored for highly parallel operation
while a CPU executes programs serially.
For this reason, GPUs have many parallel
execution units , while CPUs have few execution
units .
GPUs have singificantly faster and more
advanced memory interfaces as they need to shift
around a lot more data than CPUs.
GPUs have much deeper pipelines (several
thousand stages vs 10-20 for CPUs).
10. GPU Architecture
How many processing units?
Lots.
How many ALUs?
Hundreds.
Do you need a cache?
Sort of.
What kind of memory?
very fast.
12. The GPU pipeline
The GPU receives geometry information from the
CPU as an input and provides a picture as an
output
Let’s see how that happens…
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
13. Host Interface
The host interface is the communication bridge
between the CPU and the GPU.
It receives commands from the CPU and also
pulls geometry information from system memory.
It outputs a stream of vertices in object space
with all their associated information (texture
coordinates, per vertex color etc) .
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
14. Vertex Processing
The vertex processing stage receives vertices from the
host interface in object space and outputs them in screen
space
This may be a simple linear transformation, or a complex
operation involving morphing effects
No new vertices are created in this stage, and no vertices
are discarded (input/output has 1:1 mapping)
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
15. Triangle setup
In this stage geometry information becomes
raster information (screen space geometry is the
input, pixels are the output)
Prior to rasterization, triangles that are
backfacing or are located outside the viewing
frustrum are rejected
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
16. Triangle Setup (cont…..)
A pixel is generated if and only if its center is inside
the triangle
Every pixel generated has its attributes computed to
be the perspective correct interpolation of the three
vertices that make up the triangle
17. Pixel Processing
Each pixel provided by triangle setup is fed into
pixel processing as a set of attributes which are
used to compute the final color for this pixel
The computations taking place here include
texture mapping and math operations
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
18. Memory Interface
Pixel colors provided by the previous stage are written to
the framebuffer
Used to be the biggest bottleneck before pixel processing
took over
Before the final write occurs, some pixels are rejected by
the zbuffer .On modern GPUs z is compressed to reduce
framebuffer bandwidth (but not size).
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
19. Programmability in GPU pipeline
In current state of the art GPUs, vertex and pixel
processing are now programmable
The programmer can write programs that are executed
for every vertex as well as for every pixel
This allows fully customizable geometry and shading
effects that go well beyond the generic look and feel of
older 3D applications
host
interface
vertex
processing
triangle
setup
pixel
processing
memory
interface
20. Conclusion
Graphics Processing Unit is not a wonder that this
piece of hardware is often referred to as an exotic
product as far as computer peripherals are
concerned.
By observing the current pace at which work is going
on in developing GPUs we can surely come to a
conclusion that we will be able to see better and
faster GPUs in the near future.