Mattan Erez. The University of Texas at Austin

Similar documents
Mattan Erez. The University of Texas at Austin

Mattan Erez. The University of Texas at Austin

Spring 2009 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim

3D buzzwords. Adding programmability to the pipeline 6/7/16. Bandwidth Gravity of modern computer systems

Threading Hardware in G80

GeForce4. John Montrym Henry Moreton

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture 14

Pipeline Operations. CS 4620 Lecture 10

Evolution of GPUs Chris Seitz

Programming Graphics Hardware

CS427 Multicore Architecture and Parallel Computing

The Rasterization Pipeline

3D Rasterization II COS 426

EE382N (20): Computer Architecture - Parallelism and Locality Spring 2015 Lecture 09 GPUs (II) Mattan Erez. The University of Texas at Austin

CS8803SC Software and Hardware Cooperative Computing GPGPU. Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology

2.11 Particle Systems

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Intro to GPU s for Parallel Computing

Windowing System on a 3D Pipeline. February 2005

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Real-World Applications of Computer Arithmetic

Texture mapping. Computer Graphics CSE 167 Lecture 9

Graphics Processing Unit Architecture (GPU Arch)

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

Introduction to CUDA (1 of n*)

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

Real-Time Reyes: Programmable Pipelines and Research Challenges. Anjul Patney University of California, Davis

Shaders. Slide credit to Prof. Zwicker

The NVIDIA GeForce 8800 GPU

Module 13C: Using The 3D Graphics APIs OpenGL ES

Lecture 6: Texture. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Portland State University ECE 588/688. Graphics Processors

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

EE382N (20): Computer Architecture - Parallelism and Locality Fall 2011 Lecture 18 GPUs (III)

CS179 GPU Programming Introduction to CUDA. Lecture originally by Luke Durant and Tamas Szalay

Textures. Texture coordinates. Introduce one more component to geometry

CS GPU and GPGPU Programming Lecture 12: GPU Texturing 1. Markus Hadwiger, KAUST

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

The Rasterization Pipeline

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Today. Texture mapping in OpenGL. Texture mapping. Basic shaders for texturing. Today. Computergrafik

CS 354R: Computer Game Technology

CHAPTER 1 Graphics Systems and Models 3

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

CS GPU and GPGPU Programming Lecture 16+17: GPU Texturing 1+2. Markus Hadwiger, KAUST

Introduction to Multicore architecture. Tao Zhang Oct. 21, 2010

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

NVIDIA nfinitefx Engine: Programmable Pixel Shaders

CSE 167: Introduction to Computer Graphics Lecture #8: Textures. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

The Rasterizer Stage. Texturing, Lighting, Testing and Blending

Rendering Grass with Instancing in DirectX* 10

Render-To-Texture Caching. D. Sim Dietrich Jr.

Graphics Hardware. Instructor Stephen J. Guy

TSBK03 Screen-Space Ambient Occlusion

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

CS 130 Final. Fall 2015

Performance Insights on Executing Non-Graphics Applications on CUDA on the NVIDIA GeForce 8800 GTX

CS GAME PROGRAMMING Question bank

The Application Stage. The Game Loop, Resource Management and Renderer Design

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

CS130 : Computer Graphics. Tamar Shinar Computer Science & Engineering UC Riverside

The simplest and most obvious method to go from a continuous to a discrete image is by point sampling,

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models


CS4620/5620: Lecture 14 Pipeline

GPU Memory Model. Adapted from:

Shaders (some slides taken from David M. course)

Adaptive Point Cloud Rendering

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

Lecturer Athanasios Nikolaidis

CSE 167: Introduction to Computer Graphics Lecture #6: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2014

COMP environment mapping Mar. 12, r = 2n(n v) v

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CS 498 VR. Lecture 19-4/9/18. go.illinois.edu/vrlect19

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

CS451Real-time Rendering Pipeline

Introduction to Visualization and Computer Graphics

GPU Computation Strategies & Tricks. Ian Buck NVIDIA

Per-Pixel Lighting and Bump Mapping with the NVIDIA Shading Rasterizer

Lecture 2. Shaders, GLSL and GPGPU

Chapter 7 - Light, Materials, Appearance

Could you make the XNA functions yourself?

CS GPU and GPGPU Programming Lecture 11: GPU Texturing 1. Markus Hadwiger, KAUST

Current Trends in Computer Graphics Hardware

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Architectures. Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1

Level of Details in Computer Rendering

Drawing Fast The Graphics Pipeline

Real-Time Graphics Architecture

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Transcription:

EE382V (17325): Principles in Computer Architecture Parallelism and Locality Fall 2007 Lecture 11 The Graphics Processing Unit Mattan Erez The University of Texas at Austin

Outline What is a GPU? Why should we care about GPUs? 3D graphics pipeline Programmable graphics pipeline Most slides courtesy David Kirk (NVIDIA) and Wen-Mei Hwu (UIUC) From The University of Illinois ECE 498AI class Some slides courtesy Massimiliano Fatica (NVIDIA) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 2

A GPU Renders 3D Scenes A Graphics Processing Unit (GPU) accelerates rendering of 3D scenes Input: description of scene Output: colored pixels to be displayed on a screen Input: Geometry (triangles), colors, lights, effects, textures Output: Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 3

State of the Art in 1985 First movie from Pixar Luxo Jr. 2 3 hours per frame on a Cray-1 supercomputer Today: 1/30 th of a second on a PC Over 300,000x faster Still not even close to where we need to be but look how far we ve come! Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 4

GPU Scene Complexity Defined by Standard Interfaces (DirectX and OpenGL) DirectX and OpenGL define the interface between applications and the GPU Geometry describes the objects and layout Triangles (vertices) describe all objects Can have millions of triangles per scene Can modify triangle surfaces Bumps, ripples, Lights are part of the scene geometry Pixel Shaders describe how to add color Colors of triangle vertices Textures (patterns) How to determine color of pixels within a triangle Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 5

GPUs in 1997 DirectX 5 Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 6

GPUs in 1998 DirectX 6 Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 7

GPUs in 2000 DirectX 7 Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 8

GPUs in 2001 DirectX 8 First programmable graphics (Shader Model 1) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 9

GPUs in 2003 DirectX 9 More programmability (Shader Model 2) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 10

GPUs in 2004 DirectX 9.0c Yet more programmability (Shader Model 3) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 11

GPUs in 2007 DirectX 10 Full programs in pipeline (Shader Model 4) DirectX 10 DirectX 9 Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 12

Outline What is a GPU? Why should we care about GPUs? 3D graphics pipeline Programmable GPUs Many slides courtesy David Kirk (NVIDIA) and Wen-Mei Hwu (UIUC) From The University of Illinois ECE 498AI class Other slides courtesy Massimiliano Fatics (NVIDIA) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 13

Complexity and Quality are Orders of Magnitude Better 1997 2000 2003 2004 2007 Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 14

GPU Performance is Increasing Much Faster than CPUs Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 15

The GPU is Now a Fully Programmable General Purpose Processor Programmability needed by graphics can be exploited for GP computation Computational Computational Geoscience Modeling Computational Medicine Computational Biology Computational Chemistry Computational Finance Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 16

Speedup of Applications 60 50 40 30 20 10 0 Kernel Application 210 457 79 431 H.264 LBM RC5-72 FEM RPES PNS SAXPY TPACF FDTD MRI-Q MRI- FHD GeForce 8800 GTX vs. 2.2GHz Opteron 248 316 263 10x speedup in a kernel is typical, as long as the kernel can occupy enough parallel threads 25x to 400x speedup if the function s data requirements and control flow suit the GPU and the application is optimized Keep in mind that the speedup also reflects how suitable the CPU is for executing the kernel Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 17

GPU and CPU Architectures are Starting to Converge CPUs GPUs 1997 no explicit parallelism not programmable 2000 explicit short vectors 2003 2006 explicit short vectors explicit threading (~2) explicit short vectors explicit threading (~4) emerging programmability (2001 2002), infinite DP fully programmable explicit infinite DP no scatter explicit vectors explicit threading (~16) 2009? explicit vectors explicit threading (>16) explicit vectors explicit threading (>16) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 18

Outline What is a GPU? Why should we care about GPUs? 3D graphics pipeline Programmable GPUs Many slides courtesy David Kirk (NVIDIA) and Wen-Mei Hwu (UIUC) From The University of Illinois ECE 498AI class Other slides courtesy Massimiliano Fatics (NVIDIA) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 19

The NVIDIA GeForce Graphics Pipeline Matt 20 Host Vertex Control VS/T&L Vertex Triangle Setup Raster Shader ROP FBI Texture Frame Buffer Memory Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 20

Color Framebuffer ( Display ) 2D array of R,G,B color pixel values 8 bits (256 levels) per color component Three 8-bit components can represent 16 million different colors, including 256 shades of gray 4 th component: alpha; used for blending Typical high end: 2048x1536 pixels Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 21

Describing an Object Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 22

Feeding the GPU GPU accepts a sequence of commands and data Vertex positions, colors, and other shader parameters Texture map images Commands like draw triangles with the following vertices until you get a command to stop drawing triangles. Application pushes data using Direct3D or OpenGL GPU can pull commands and data from system memory or from its local memory Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 23

Host Interface Host Vertex Control VS/T&L Triangle Setup Vertex Bus Interface DMA Engines Class Interfaces Raster Shader ROP FBI Texture Frame Buffer Memory This enables our Unified Driver Architecture How the CPU communicates to our GPU How our GPU communicates back to the CPU How we move data back and forth to the CPU Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 24

Transform Vertex Positions Why transform vertices? Rotate, translate and scale each object to place it correctly among the other objects that make up the scene model. Rotate, translate, and scale the entire scene to correctly place it relative to the camera s position, view direction, and field of view. How? Multiply every floating point vertex position by a combined 4x4 model-view matrix to get a 4-D [x y z w] eye-space position Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 25

Vertex Control Host Vertex Control VS/T&L Triangle Setup Vertex Receives parameterized vertex data Inputs data to vertex cache Formats vertices for processing Data can come to our GPU in a variety of formats Vertex control organizes vertex data into a consistent, hardware understandable format Raster Shader ROP FBI Texture Frame Buffer Memory Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 26

What s a Vertex? The defining corners of a primitive For GeForce that means a triangle A Triangle Vertices Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 27

Vertex Host Vertex Control VS/T&L Vertex Triangle Setup Temporary store for vertices, used to gain higher efficiency Re-using vertices between primitives saves AGP/PCI-E bus bandwidth Re-using vertices between primitives saves GPU computational resources A vertex cache attempts to exploit commonality between triangles to generate vertex reuse Unfortunately, many applications do not use efficient triangular ordering Raster Shader ROP FBI Texture Frame Buffer Memory Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 28

Geometry/Vertex Processing Host Transform & Lighting Fixed set of transformations and effects Vertex Control VS/ T&L Triangle Setup Raster Shader ROP Vertex Texture Frame Buffer Memory FBI Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 29

Vertex Processing Examples Deformation Warping Procedural Animation Lens Effects Range-based Fog Elevation-based Fog Animation Morphing Interpolation Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 30

Geometry/Vertex Processing Host Transform & Lighting Fixed set of transformations and effects Today: Vertex Shading Programmable programs run on a per vertex basis One vertex in One vertex out: DP stream processing Flow-through programming architecture Vertex Control VS/ T&L Triangle Setup Raster Shader ROP FBI Vertex Texture Frame Buffer Memory Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 31

Vertex Lighting Vertex lighting generates a color value at each vertex. Simplest GPU lighting : application calculates and delivers an (R,G,B) triplet for every vertex. A more typical GPU lighting equation models the physics of light transport. We sum contributions of: Ambient uniform light from all directions Emissive light given off by the object itself Specular glossy, mirror-like reflections Diffuse dull, matte-finish reflections Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 32

Triangle Setup Host Vertex Control T&L Vertex Each vertex of each polygon contains parameters used by Triangle Setup typically 4 or more In Setup, this vertex data is used to create a map relating pixel coordinates with the variables that will ultimately determine their color V0 Triangle Setup Raster Shader ROP FBI Texture X,Y Frame Buffer Memory V1 V2 Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 33

Rasterization Host Vertex Control T&L Vertex Rasterization is the process of determining which pixels are contained in each triangle For each of these pixels, the rasterizer creates the necessary information for pixel shading It includes information like Position Color Texture coordinates for each pixel Pattern for rasterization (which helps fill texture cache ahead of time) In GeForce, it also includes Z-Occlusion Culling Triangle Setup Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 34 Raster Shader ROP FBI Texture Frame Buffer Memory

Rasterization Given a triangle, identify every pixel that belongs to that triangle Point Sampling A pixel belongs to a triangle if and only if the center of the pixel is located in the interior of the triangle Evaluate 3 edge equations of the form E=Ax+By+C, where E=0 is exactly on the line, and positive E is towards the interior of the triangle. Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 35

Rasterization E 2 =A 2 x+b 2 y+c 2 E 1 =A 1 x+b 1 y+c 1 E 0 =A 0 x+b 0 y+c 0 Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 36

Shading Host Vertex Control T&L Vertex Tony 50 Shading is assigning color values to pixels Color values can be determined by: Triangle Setup Raster Shader ROP FBI Texture Frame Buffer Memory Interpolated shading (ex. Gouraud or Phong) Texture mapping Per pixel lighting mathematics Reflections Complex pixel shader programs Shading includes Texture Mapping A color value can now be procedurally generated... Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 37

Gouraud Interpolation Also called smooth shading Linearly vary color values across the triangle interior. More realistic than flat shading because the facets in the model are less obvious. Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 38

Texture Mapping Associate points in an image to points in a geometric object Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 39

Mip Mapping Mip Mapping is a technique to manage pixel level of detail (LOD). Scaled versions of the original texture are generated and stored. These smaller stored textures are used for the texture samples as objects appear smaller with greater distance. 1024x1024 512x512 256x256 128x128 64x64 Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 40

Bilinear Filtering Individual texel colors are interpolated from the four nearest texels of the closest stored mip map. Random Sized Texture Needed in a Given Frame of an Applicaiton Stored Mip Map Texture Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 41

Texture Filtering - Good Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 42

Texture Filtering - Better Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 43

Trilinear Filtering Individual texel colors are interpoloated from bilinear interpolations of nearest adjacent mip maps. Stored Mip Map Texture Stored Mip Map Texture Random Sized Texture Needed in a Given Frame of an Application Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 44

Trilinear Filtering Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 45

Anisotropic Filtering Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 46

Filtering techniques Point sampling: pixel values are calculated by choosing one texture pixel (texel) color Bilinear filtering: interpolating colors from 4 neighboring texels. This gives a smoothing (if somewhat blurry) effect and makes the scene look more natural and prevents abrupt transitions between neighboring texels. Trilinear filtering: interpolating bilinearly filtered samples from two mip-maps. Trilinear mip-mapping prevents moving objects from displaying a distracting sparkle caused by abrupt transitions between mipmaps. Anisotropic filtering: interpolating and filtering multiple samples from one or more mipmaps to better approximate very distorted textures. Gives a sharper effect when severe perspective correction is used. Trilinear mipmapping blurs textures more. Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 47

Texture Host Vertex Control T&L Vertex Stores temporally local texel values to reduce bandwidth requirements Triangle Setup Raster Shader ROP Texture Frame Buffer Memory FBI Due to nature of texture filtering high degrees of efficiency are possible Efficient texture caches can achieve 75% or better hit rates Reduces texture (memory) bandwidth by a factor of four for bilinear filtering Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 48

Pixel Shading 1999 (DirectX 7) Application could select from a few simple combinations of texture and interpolated color Add Decal Modulate Next (DirectX 9) Write a general program that executes for every pixel with a nearly unlimited number of interpolated inputs, texture lookups and math operations Can afford to perform sophisticated lighting calculations at every pixel Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 49

GeForce FX Fragment/Pixel Program Examples Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 50

ROP (from Raster Operations) C-ROP performs frame buffer blending Combinations of colors and transparency Antialiasing Read/Modify/Write the Color Buffer Z-ROP performs the Z operations Host Vertex Control T&L Triangle Setup Raster Shader ROP FBI Vertex Texture Frame Buffer Memory Determine the visible pixels Discard the occluded pixels Read/Modify/Write the Z-Buffer ROP on GeForce also performs Coalescing of transactions Z-Buffer compression/decompression Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 51

Alpha Blending Alpha Blending is used to render translucent objects. The pixel s alpha component contains its opacity. Read-modify-write operation to the color framebuffer Result = alpha * Src + (1-alpha) * Dst Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 52

Anti-Aliasing Aliased rendering: color sample at pixel center is the color of the whole pixel Anti-aliasing accounts for the contribution of all the primitives that intersect the pixel Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 53

Host Frame Buffer Interface (FBI) Vertex Control Surface Engine T&L Vertex Manages reading from and writing to frame buffer Perhaps the most performancecritical component of a GPU GeForce s FBI is a crossbar Independent memory controllers for 4+ independent memory banks for more efficient access to frame buffer Triangle Setup Raster Shader ROP FBI Texture Frame Buffer Memory Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 54

The Frame Buffer Host Vertex Control T&L Vertex The primary determinant of graphics performance other than the GPU Triangle Setup Raster Shader ROP Texture Frame Buffer Memory The most expensive component of a graphics product other than the GPU FBI Memory bandwidth is the key Frame buffer size also determines Local texture storage Maximum resolutions AA resolution limits Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 55

Z Buffer A Z buffer is a 2-D array of Z values with the same (x,y) dimensions as the color framebuffer Every candidate pixel from the shader has a calculated Z value along with its R,G,B,A color. Before writing the color, perform the Z-buffer test: Read the Z value from memory Compare the candidate Z to the Z from memory; if the candidate Z is NOT in front of the previous Z, discard the pixel Otherwise, write the new Z value to the Z buffer and write (or blend) the new color to the color framebuffer Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 56

Summary, so far Introduction to several key 3D graphics concepts: Framebuffers Object Representation Vertex Processing Lighting Rasterization Gouraud Interpolation Texture Mapping Pixel Shading Alpha Blending Anti-Aliasing Z-Buffering Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 57

Outline What is a GPU? Why should we care about GPUs? 3D graphics pipeline Programmable GPUs Many slides courtesy David Kirk (NVIDIA) and Wen-Mei Hwu (UIUC) From The University of Illinois ECE 498AI class Other slides courtesy Massimiliano Fatics (NVIDIA) Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 58

Adding Programmability to the Graphics Pipeline 3D Application or Game 3D API Commands 3D API: OpenGL or Direct3D CPU GPU Boundary GPU Command & Data Stream Pre-transformed Vertices GPU Front End Vertex Index Stream Programmable Vertex Processor Primitive Assembly Transformed Vertices Assembled Polygons, Lines, and Points Rasterized Pre-transformed Fragments Rasterization & Interpolation Pixel Location Stream Programmable Fragment Processor Raster Operation s Pixel Updates Transformed Fragments Framebuffer Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 59

Vertex and Fragment Processing Share Unified Processing Elements Load balancing HW is a problem Vertex Shader Pixel Shader Idle hardware Heavy Geometry Workload Perf = 4 Vertex Shader Idle hardware Pixel Shader Heavy Pixel Workload Perf = 8 Mattan NVIDIA ErezCorp., 2007 EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 60

Vertex and Fragment Processing Share Unified Processing Elements Load balancing SW is easier Unified Shader Vertex Workload Pixel Heavy Geometry Workload Perf = 11 Unified Shader Pixel Workload Vertex Heavy Pixel Workload Perf = 11 Mattan NVIDIA ErezCorp., 2007 EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 61

Vertex and Fragment Processing is Dynamically Load Balanced Less Geometry More Geometry Unified Shader Usage High pixel shader use Low vertex shader use Balanced use of pixel shader and vertex shader Mattan NVIDIA ErezCorp., 2007 EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 62

Make the Compute Core The Focus of the Architecture Processors The future of execute GPUs is computing programmable threads processing Alternative So build the operating architecture mode around specifically the processor for computing Host Input Input Assembler Thread Execution Manager Vtx Thread Issue Generates Thread grids based on kernel calls Geom Thread Issue Setup / Rstr / ZCull Pixel Thread Issue SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP Parallel TF Data Parallel TF Data Parallel Data Parallel Data Parallel Data Parallel Data Parallel Data Parallel Data TF TF TF TF TF TF Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Texture L1 Thread Processor Load/store L2 Load/storeL2 Load/store L2 Load/store L2 Load/store L2 Load/store L2 FB FB FB Global Memory FB FB FB Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 63

Parallel Computing on a GPU NVIDIA GPU Computing Architecture Via a separate HW interface In laptops, desktops, workstations, servers GeForce 8800 8-series GPUs deliver 50 to 200 GFLOPS on compiled parallel C applications GPU parallelism is doubling every year Programming model scales transparently Tesla D870 Programmable in C with CUDA tools Multithreaded SPMD model uses application data parallelism and thread parallelism Tesla S870 Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 64

Next Lectures NVIDIA GeForce 8800 architecture CUDA programming model Mattan Erez EE382V: Principles of Computer Architecture, Fall 2007 -- Lecture 11 65