A Crash Course on Programmable Graphics Hardware - PowerPoint PPT Presentation

About This Presentation
Title:

A Crash Course on Programmable Graphics Hardware

Description:

Only high level overview (so you can program), not necessarily real hardware. GPU ... Performance implication. A triangle is ready only when all 3 vertices are ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 37
Provided by: liyi9
Category:

less

Transcript and Presenter's Notes

Title: A Crash Course on Programmable Graphics Hardware


1
A Crash Course on Programmable Graphics Hardware
  • Li-Yi Wei
  • 2005
  • at Tsinghua University, Beijing

2
Why do we need graphics hardware?
3
The evolution of graphics hardware
SGI Origin 3400
NVIDIA Geforce 7800
4
  • 7 years of graphics
  • accelenation.com/?doc123page1

5
Ray tracing
  • General flexible
  • Intuitive
  • Global illumination
  • Hard to accelerate

6
Polygonal graphics pipeline
  • Local computation
  • Easy to accelerate
  • Not general
  • Unintuitive

7
Graphics hierarchy
  • Layered approach
  • Like network layers
  • Encapsulation
  • Easy programming
  • Driver optimization
  • Driver workaround
  • Driver simulation
  • Protection
  • Hardware error check

8
Overview
  • Graphics pipeline
  • Only high level overview (so you can program),
    not necessarily real hardware
  • GPU programming

9
Graphics pipeline
10
Application
  • Mostly on CPU
  • High level work
  • User interface
  • Control
  • Simulation
  • Physics
  • Artificial intelligence

11
Host
  • Gatekeeper of GPU
  • Command processing
  • Error checking
  • State management
  • Context switch

12
Geometry
  • Vertex processor
  • Primitive assembly
  • Clip cull
  • Viewport transform

13
Vertex Processor
  • Process one vertex at one time
  • No information on other vertices
  • Programmable
  • Transformation
  • Lighting

14
Transformation
  • Global to eye coordinate system

15
Lighting
  • Diffuse
  • Specular

16
Transform Light on Vertex Processor
  • A sequence of assembly instructions
  • (more on this later)

17
Primitive Assembly
  • Assemble individual vertices into triangle (or
    line or point)
  • Performance implication
  • A triangle is ready only when all 3 vertices are
  • Vertex coherence caching

18
Clipping Culling
  • Backface culling
  • Remove triangles facing away from view
  • Eliminate ½ of the triangles in theory
  • Clipping against view frustum
  • Triangles may become quadrilaterals

19
Viewport transform
  • From floating point range -1, 1 x -1, 1 to
    integer range 0, height-1 x 0, width-1

20
Rasterization
  • Convert primitives (triangles, lines) into pixels
  • Barycentric coordinate
  • Attribute interpolation

21
Triangles into pixels
22
Attribute interpolation
  • Interpolation
  • Barycentric

23
Perspective correct interpolation
correct
incorrect
24
Fragment processor
  • Fragment corresponds to a single pixel and
    includes color, depth, and sometimes
    texture-coordinate values.
  • Compute color and depth for each pixel
  • Most interesting part of GPU

25
Texture
  • Optional
  • (though hard to avoid)
  • Cache data
  • Hide latency from FB
  • Sampling/filtering
  • I told you this last time

26
ROP (Raster Operation)
  • Write to framebuffer
  • Comparison
  • Z, stencil, alpha, window

27
Framebuffer
  • Storing buffers and textures
  • Connect to display
  • Characteristics
  • Size
  • Bandwidth
  • Latency

28
Conceptual programming model
  • Inputs (read-only)
  • Attributes
  • Constants
  • Textures
  • Registers (read-write)
  • Used by shader
  • Outputs (write-only)
  • Attributes

29
Simple example
  • HPOS position
  • COL0 diffuse color
  • MOV oHPOS, vHPOS
  • MOV oCOL0, vCOL0

30
More complex example
  • oCOL0 vCOL0 constantvHPOS
  • MOV oHPOS, vHPOS
  • MOV R0, vCOL0
  • MAD R0, vHPOS, c0, R0
  • MOV oCOL0, R0

31
Sample instruction set
32
A real example
33
High-level shading language
  • Writing assembly is
  • Painful
  • Not portable
  • Not optimize-able
  • High level shading language solves these
  • Cg, HLSL

34
Cg example
35
Applications
  • Too many of them for me to describe here
  • The only way to learn is try to program
  • Useless for you even if I try to describe
  • Look at developer website
  • NVIDIA, ATI, GPGPU

36
Homework
  • Try to program GPU!
  • Even without NVIDIA GPU, you can download the
    emulator
  • Stanford course on graphics hardware
  • http//www.graphics.stanford.edu/courses/cs448a-01
    -fall/
  • History of graphics hardware
  • 7 years of graphics
  • accelenation.com/?doc123page1

37
(No Transcript)
38
S2005 Arial, Bold, 37 points
  • This subtitle is 27 points
  • Bullets are orange
  • They have 110 line spacing, 6 points
    before/after
  • Longer bullets in the form of a paragraph are
    harder to read if there is insufficient line
    spacing. This is the maximum recommended number
    of lines per slide (seven).
  • Sub bullets look like this
Write a Comment
User Comments (0)
About PowerShow.com