Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "A Crash Course on Programmable Graphics Hardware Li-Yi Wei 2005 at Tsinghua University, Beijing."— Presentation transcript:

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 3400NVIDIA Geforce 7800

4 7 years of graphics accelenation.com/?doc=123&page=1

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 incorrect correct

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 o[HPOS], v[HPOS]; MOV o[COL0], v[COL0];

30 More complex example o[COL0] = v[COL0] + constant*v[HPOS]; MOV o[HPOS], v[HPOS]; MOV R0, v[COL0]; MAD R0, v[HPOS], c[0], R0; MOV o[COL0], 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/cs448 a-01-fall/ History of graphics hardware 7 years of graphics accelenation.com/?doc=123&page=1

37

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


Download ppt "A Crash Course on Programmable Graphics Hardware Li-Yi Wei 2005 at Tsinghua University, Beijing."

Similar presentations


Ads by Google