Graphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal
|
|
- Joan May
- 6 years ago
- Views:
Transcription
1 Graphics Hardware, Graphics APIs, and Computation on GPUs Mark Segal
2 Overview Graphics Pipeline Graphics Hardware Graphics APIs ATI s low-level interface for computation on GPUs 2
3 Graphics Hardware High Level I/O CPU Northbridge Main Memory PCI-E 16x X1K Host Interface Other Important Graphics Stuff 3D pipeline Memory Controller 256 gfx memory 3
4 3D Pipeline Overview Command Rasterizer Fragment Per-Pixel Operations Framebuffer 4 1.2G Vertices (=Tris)/sec 11 G Pixels/sec Programmable vertex, fragment processors Allows Sophisticated shading High scene, depth complexity, multipass, high-dynamic range, antialiasing Computation on GPUs
5 ATI Hardware X1K series 8 vertex engines, 16 fragment engines 3-component vector + scalar X19xx: 48 fragment ALU cores Dynamic flow control 256Mb, 512Mb, 1Gb configurations 650 MHz engine, 775 MHz memory (X19xx XTX) 5
6 3D pipeline control Command Rasterizer Fragment Per-Pixel Operations Framebuffer 6 Pipelined or non-pipelined
7 3D pipeline vertex fetch Getting vertex data Immediate mode; Direct specification CPU Fragment Host Interface Per-Pixel Operations Command Vertices Framebuffer 7 Fetch Memory Controller Rasterizer Graphics Memory Command
8 3D pipeline vertex fetch Getting vertex data arrays; Indirect specification CPU Fragment Host Interface Per-Pixel Operations Command Framebuffer Commands Fetch Vertices 8 Memory Controller Rasterizer Graphics Memory Command
9 3D pipeline vertex fetch Getting vertex data Index arrays; Indexed specification CPU Rasterizer Per-Pixel Operations Host Interface Commands Command Indices Framebuffer Fetch Vertices 9 Memory Controller Fragment Graphics Memory Command
10 s Command Rasterizer Look like fragment processors 8 4-component dot-product engines 650 MHz 4 clocks per vertex per engine 32-bit floating-point Fragment Per-Pixel Operations Framebuffer 10 Arithmetic instructions: madd, 1/x, 1/sqrt(x), etc. comparison Flow control instructions call, return, loop, jnz, etc.
11 Processing Final Steps Command Primitive assembly, clipping, perspective divide, viewport scaling Rasterizer Fragment Per-Pixel Operations Framebuffer 11
12 Scan conversion Command Rasterizer Fragment Compute parameter (depth, color, texture coord) at each fragment Use plane equation (affine in x,y) derived from values at vertices Pretesting eliminates invisible fragments, hierarchically p1 z = a z x + bz y + cz Per-Pixel Operations s = (a s x + b s y + c s ) / (a1/w x + b1/w y + c1/w ) Framebuffer p0 12 p2
13 Fragment Implementation Texture Command Rasterizer r/w registers Fragments In 128x128 1W3R outputs ALU Fragment Per-Pixel Operations Framebuffer constants Register Interface 128x128 1W3R Sequencer 48 (4xIEEE-32) ALUs 200Gbit memory bandwidth 13 4x128 1W1R Fragments Out
14 Threading When a fragment program hits a stall, switch to another that s ready to go E.g. texture read takes many cycles Latency hiding E.g. texture fetch appears to take one cycle, can overlap with ALU Many fragments in various stages of completion (in flight) at any one time Requires storage for stalled fragments data Can use unused temporary registers 14
15 Per-Pixel Operations, Framebuffer Command Rasterizer Fragment Per-Pixel Operations Framebuffer 15 Fog: c = ccurrent * (1-f) + cfog * f Depth, Stencil, Alpha Tests Color blend Blend incoming/existing color 32-bit floating-point framebuffer Other graphics operations, optimizations
16 What can you do with this stuff? 16
17 Antialiasing + High Dynamic Range 17
18 Graphics Programming Interfaces (APIs) 18
19 Graphics Programming Interfaces Provide software interface to graphics hardware Lowest level: Expose full functionality of hardware at full performance Hide device-specific details Limit interface changes generation to generation Higher levels: Simplify application programming E.g. scene graph, shading languages 19
20 Low Level Interface Texture Expose pipeline Triangles Rasterize Fragments Framebuffer Historically fixed-function OpenGL Requires all functionality; software path if not Direct3D Uses capability bits Both provide vertex, fragment program assembly language 20
21 High Level Interface Programmable Renderman Shading-specific; not designed for hardware HLSL (DirectX), GLSL (OpenGL), Cg (nvidia - both) C-like General, but all expose some hardware details 3 & 4 element vectors GLSL virtualizes number of passes Have become only means to access programmability Actual vertex, fragment processor instruction set not exposed 21
22 Re-examine hw abstraction OpenGL (originally) host Not programmable Command Graphics memory not accessible, special purpose Changes: Programmability Fragment Per-Pixel Operations 22 Graphics Memory Rasterizer Flexible use of graphics memory (multipass, renderto-texture, render-to-vertexarray)
23 New low-level interface host Command Distinguish two characteristics P Data path, routing, memory parallel data processors P Machine language Fragment Compiler for higher-level languages Use libraries P Graphics Memory Expose Programmability; jettison fixed F Rasterizer function Per-Pixel F Operations Expose memory capabilities and routing Stripped-down interface 23 P: programmable F: fixed
24 Fits with New GPU Applications Recent applications exploit high-speed, parallel computation, large graphics memory Ray-tracing, collision detection, volume rendering/classification, etc. Optimization, matrix computations E.g. matrix 110 Gflops Sorting, Searching, HMMs New Real-Time Graphics Applications 24
25 ATI CTM Stands for: ATI Close To the Metal Exposes GPU (fragment) data parallel processors and memory Specifies actual processor instruction set architecture (ISA) Specifies application binary interface (ABI) for programs Leaves memory management entirely up to the application 25
26 ATI CTM (cont.) Abstracts GPU control hardware (around processor array) Provides a model of the GPU command processor Hides irrelevant details that are still necessary to drive GPU Architecture independent Focuses initially on computation Exports only a subset of surrounding GPU features Hides vertex programs, rasterization, texture filtering, pixel operations 26
27 ATI CTM Block Diagram Application atictm.dll amopenmanagedconnection() amclosemanagedconnection() amsubmitcommandbuffer() amcommandbufferconsumed() GPU Memory CTM PCI-E Memory Commands Command Data Parallel (DPP) Array 27 Memory Controller Commands Instructions Instructions Constants Constants Inputs Inputs Outputs Outputs
28 ATI CTM DPP Code Generation Code generation is up to the application Instruction set and application binary interface are documented Source code provided for a simple assembler Source code provided to pack and extract ELF binaries Source code to be available for a non-optimizing reference compiler ATI is encouraging the development of external tool chains Compilers, Linkers, Libraries, Debuggers ATI optimizing compiler (available with CTM SDK) Takes a higher-level interface (e.g. PS3) and produces ELF binaries 28
29 CTM and the Graphics APIs Graphics APIs may impede the development of some applications Applications must manage graphics state Code generation is (by design) hidden Memory format and management are (by design) hidden Driver imposes a graphics-centric (games) performance profile APIs are mediated by the window system (wgl/glx) Imposes a particular threading model for GPU access Complicates multi-gpu operation Couples application to display policy Performance (and functionality) may be unpredictable across drivers 29
30 CTM and the Graphics APIs (cont.) CTM gives full control to an application of the features it exposes Code generation Memory management Command buffer packing and submission Relatively immune to driver changes Graphics APIs abstract the graphics pipeline; CTM abstracts the processor 30
31 Conclusion Good image quality requires lots of computation; recent GPUs have lots of computational power Don t forget about memory Graphics APIs aren t always a good fit to expose computational power, especially outside graphics Real-time graphics has changed and is changing Programmability, single memory Line between computation and graphics is blurring E.g., Game physics, Ray-tracing on GPUs Use CPU and GPU in concert at a finer grain 31
32 Graphics Hardware, Graphics APIs, and Computation on GPUs Mark Segal
33 Overview Graphics Pipeline Graphics Hardware Graphics APIs ATI s low-level interface for computation on GPUs 2 ATI Confidential
34 Graphics Hardware High Level I/O Northbridge CPU Main Memory PCI-E 16x X1K Host Interface Other Important Graphics Stuff 3D pipeline Memory Controller 256 gfx memory 3 ATI Confidential
35 3D Pipeline Overview Command Rasterizer Fragment Per-Pixel Operations Framebuffer 4 1.2G Vertices (=Tris)/sec 11 G Pixels/sec Programmable vertex, fragment processors Allows Sophisticated shading High scene, depth complexity, multipass, high-dynamic range, antialiasing Computation on GPUs ATI Confidential
36 ATI Hardware X1K series 8 vertex engines, 16 fragment engines 3-component vector + scalar X19xx: 48 fragment ALU cores Dynamic flow control 256Mb, 512Mb, 1Gb configurations 650 MHz engine, 775 MHz memory (X19xx XTX) 5 ATI Confidential
37 3D pipeline control Command Rasterizer Pipelined or non-pipelined Fragment Per-Pixel Operations Framebuffer 6 ATI Confidential
38 3D pipeline vertex fetch Getting vertex data Immediate mode; Direct specification CPU Fragment Host Interface Per-Pixel Operations Command Vertices Fetch Framebuffer 7 ATI Confidential Memory Controller Rasterizer Graphics Memory Command
39 3D pipeline vertex fetch Getting vertex data arrays; Indirect specification CPU Fragment Host Interface Per-Pixel Operations Command Commands Fetch Framebuffer Vertices 8 ATI Confidential Memory Controller Rasterizer Graphics Memory Command
40 3D pipeline vertex fetch Getting vertex data Index arrays; Indexed specification CPU Rasterizer Host Interface Fragment Command Per-Pixel Operations Indices Fetch Framebuffer Vertices 9 ATI Confidential Memory Controller Commands Graphics Memory Command
41 s Command Look like fragment processors 8 4-component dot-product engines 650 MHz Rasterizer 4 clocks per vertex per engine 32-bit floating-point Fragment Per-Pixel Operations Framebuffer 10 Arithmetic instructions: madd, 1/x, 1/sqrt(x), etc. comparison Flow control instructions call, return, loop, jnz, etc. ATI Confidential
42 Processing Final Steps Command Primitive assembly, clipping, perspective divide, viewport scaling Rasterizer Fragment Per-Pixel Operations Framebuffer 11 ATI Confidential
43 Scan conversion Command Rasterizer Fragment Compute parameter (depth, color, texture coord) at each fragment Use plane equation (affine in x,y) derived from values at vertices Pretesting eliminates invisible fragments, hierarchically p1 z = a z x + bz y + cz Per-Pixel Operations s = (a s x + b s y + cs ) / (a1/w x + b1/w y + c1/w ) Framebuffer p0 12 p2 ATI Confidential
44 Fragment Implementation Texture Command Rasterizer r/w registers Fragments In Fragment Per-Pixel Operations Framebuffer 128x128 1W3R outputs ALU constants Register Interface 128x128 1W3R Sequencer 48 (4xIEEE-32) ALUs 200Gbit memory bandwidth 13 ATI Confidential 4x128 1W1R Fragments Out
45 Threading When a fragment program hits a stall, switch to another that s ready to go E.g. texture read takes many cycles Latency hiding E.g. texture fetch appears to take one cycle, can overlap with ALU Many fragments in various stages of completion (in flight) at any one time Requires storage for stalled fragments data Can use unused temporary registers 14 ATI Confidential
46 Per-Pixel Operations, Framebuffer Command Rasterizer Fragment Per-Pixel Operations Framebuffer 15 Fog: c = ccurrent * (1-f) + cfog * f Depth, Stencil, Alpha Tests Color blend Blend incoming/existing color 32-bit floating-point framebuffer Other graphics operations, optimizations ATI Confidential
47 What can you do with this stuff? 16 ATI Confidential
48 Antialiasing + High Dynamic Range 17 ATI Confidential
49 Graphics Programming Interfaces (APIs) 18 ATI Confidential 18
50 Graphics Programming Interfaces Provide software interface to graphics hardware Lowest level: Expose full functionality of hardware at full performance Hide device-specific details Limit interface changes generation to generation Higher levels: Simplify application programming E.g. scene graph, shading languages 19 ATI Confidential
51 Low Level Interface Texture Expose pipeline Triangles Rasterize Fragments Framebuffer Historically fixed-function OpenGL Requires all functionality; software path if not Direct3D Uses capability bits Both provide vertex, fragment program assembly language 20 ATI Confidential
52 High Level Interface Programmable Renderman Shading-specific; not designed for hardware HLSL (DirectX), GLSL (OpenGL), Cg (nvidia - both) C-like General, but all expose some hardware details 3 & 4 element vectors GLSL virtualizes number of passes Have become only means to access programmability Actual vertex, fragment processor instruction set not exposed 21 ATI Confidential
53 Re-examine hw abstraction OpenGL (originally) host Not programmable Command Graphics memory not accessible, special purpose Changes: Rasterizer Per-Pixel Operations 22 Graphics Memory Fragment Programmability Flexible use of graphics memory (multipass, renderto-texture, render-to-vertexarray) ATI Confidential
54 New low-level interface host Command Distinguish two characteristics P Data path, routing, memory parallel data processors P Machine language Fragment Compiler for higher-level languages Use libraries P Graphics Memory Expose Programmability; jettison fixed F Rasterizer function Per-Pixel F Operations Expose memory capabilities and routing Stripped-down interface 23 ATI Confidential P: programmable F: fixed
55 Fits with New GPU Applications Recent applications exploit high-speed, parallel computation, large graphics memory Ray-tracing, collision detection, volume rendering/classification, etc. Optimization, matrix computations E.g. matrix 110 Gflops Sorting, Searching, HMMs New Real-Time Graphics Applications 24 ATI Confidential
56 ATI CTM Stands for: ATI Close To the Metal Exposes GPU (fragment) data parallel processors and memory Specifies actual processor instruction set architecture (ISA) Specifies application binary interface (ABI) for programs Leaves memory management entirely up to the application 25 ATI Confidential 25
57 ATI CTM (cont.) Abstracts GPU control hardware (around processor array) Provides a model of the GPU command processor Hides irrelevant details that are still necessary to drive GPU Architecture independent Focuses initially on computation Exports only a subset of surrounding GPU features Hides vertex programs, rasterization, texture filtering, pixel operations 26 ATI Confidential
58 ATI CTM Block Diagram Application atictm.dll amopenmanagedconnection() amclosemanagedconnection() amsubmitcommandbuffer() amcommandbufferconsumed() GPU Memory CTM PCI-E Memory Commands Command Memory Controller Commands Data Parallel (DPP) Array 27 Instructions Instructions Constants Constants Inputs Inputs Outputs Outputs ATI Confidential 27
59 ATI CTM DPP Code Generation Code generation is up to the application Instruction set and application binary interface are documented Source code provided for a simple assembler Source code provided to pack and extract ELF binaries Source code to be available for a non-optimizing reference compiler ATI is encouraging the development of external tool chains Compilers, Linkers, Libraries, Debuggers ATI optimizing compiler (available with CTM SDK) Takes a higher-level interface (e.g. PS3) and produces ELF binaries 28 ATI Confidential 28
60 CTM and the Graphics APIs Graphics APIs may impede the development of some applications Applications must manage graphics state Code generation is (by design) hidden Memory format and management are (by design) hidden Driver imposes a graphics-centric (games) performance profile APIs are mediated by the window system (wgl/glx) Imposes a particular threading model for GPU access Complicates multi-gpu operation Couples application to display policy Performance (and functionality) may be unpredictable across drivers 29 ATI Confidential 29
61 CTM and the Graphics APIs (cont.) CTM gives full control to an application of the features it exposes Code generation Memory management Command buffer packing and submission Relatively immune to driver changes Graphics APIs abstract the graphics pipeline; CTM abstracts the processor 30 ATI Confidential
62 Conclusion Good image quality requires lots of computation; recent GPUs have lots of computational power Don t forget about memory Graphics APIs aren t always a good fit to expose computational power, especially outside graphics Real-time graphics has changed and is changing Programmability, single memory Line between computation and graphics is blurring E.g., Game physics, Ray-tracing on GPUs Use CPU and GPU in concert at a finer grain 31 ATI Confidential
Graphics Hardware. Instructor Stephen J. Guy
Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!
More informationLecture 2. Shaders, GLSL and GPGPU
Lecture 2 Shaders, GLSL and GPGPU Is it interesting to do GPU computing with graphics APIs today? Lecture overview Why care about shaders for computing? Shaders for graphics GLSL Computing with shaders
More informationGraphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics
Why GPU? Chapter 1 Graphics Hardware Graphics Processing Unit (GPU) is a Subsidiary hardware With massively multi-threaded many-core Dedicated to 2D and 3D graphics Special purpose low functionality, high
More informationReal - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský
Real - Time Rendering Graphics pipeline Michal Červeňanský Juraj Starinský Overview History of Graphics HW Rendering pipeline Shaders Debugging 2 History of Graphics HW First generation Second generation
More informationX. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1
X. GPU Programming 320491: Advanced Graphics - Chapter X 1 X.1 GPU Architecture 320491: Advanced Graphics - Chapter X 2 GPU Graphics Processing Unit Parallelized SIMD Architecture 112 processing cores
More informationCS427 Multicore Architecture and Parallel Computing
CS427 Multicore Architecture and Parallel Computing Lecture 6 GPU Architecture Li Jiang 2014/10/9 1 GPU Scaling A quiet revolution and potential build-up Calculation: 936 GFLOPS vs. 102 GFLOPS Memory Bandwidth:
More informationGraphics Processing Unit Architecture (GPU Arch)
Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics
More informationIntroduction to Shaders.
Introduction to Shaders Marco Benvegnù hiforce@gmx.it www.benve.org Summer 2005 Overview Rendering pipeline Shaders concepts Shading Languages Shading Tools Effects showcase Setup of a Shader in OpenGL
More informationSpring 2009 Prof. Hyesoon Kim
Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on
More informationC P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev
C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image
More information1.2.3 The Graphics Hardware Pipeline
Figure 1-3. The Graphics Hardware Pipeline 1.2.3 The Graphics Hardware Pipeline A pipeline is a sequence of stages operating in parallel and in a fixed order. Each stage receives its input from the prior
More informationGraphics Hardware. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 2/26/07 1
Graphics Hardware Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/26/07 1 From last time Texture coordinates Uses of texture maps reflectance and other surface parameters lighting
More informationTutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI
Tutorial on GPU Programming #2 Joong-Youn Lee Supercomputing Center, KISTI Contents Graphics Pipeline Vertex Programming Fragment Programming Introduction to Cg Language Graphics Pipeline The process to
More informationHardware-driven visibility culling
Hardware-driven visibility culling I. Introduction 20073114 김정현 The goal of the 3D graphics is to generate a realistic and accurate 3D image. To achieve this, it needs to process not only large amount
More informationSpring 2011 Prof. Hyesoon Kim
Spring 2011 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on
More informationCS4620/5620: Lecture 14 Pipeline
CS4620/5620: Lecture 14 Pipeline 1 Rasterizing triangles Summary 1! evaluation of linear functions on pixel grid 2! functions defined by parameter values at vertices 3! using extra parameters to determine
More informationReal-Time Rendering (Echtzeitgraphik) Michael Wimmer
Real-Time Rendering (Echtzeitgraphik) Michael Wimmer wimmer@cg.tuwien.ac.at Walking down the graphics pipeline Application Geometry Rasterizer What for? Understanding the rendering pipeline is the key
More informationSung-Eui Yoon ( 윤성의 )
Introduction to Computer Graphics and OpenGL Graphics Hardware Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/etri_cg/ Class Objectives Understand how GPUs have been evolved Understand
More informationOptimizing DirectX Graphics. Richard Huddy European Developer Relations Manager
Optimizing DirectX Graphics Richard Huddy European Developer Relations Manager Some early observations Bear in mind that graphics performance problems are both commoner and rarer than you d think The most
More informationShaders (some slides taken from David M. course)
Shaders (some slides taken from David M. course) Doron Nussbaum Doron Nussbaum COMP 3501 - Shaders 1 Traditional Rendering Pipeline Traditional pipeline (older graphics cards) restricts developer to texture
More informationCS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST
CS 380 - GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 17) Read (required): GLSL book, chapter 4 (The OpenGL Programmable
More informationCSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller
Entertainment Graphics: Virtual Realism for the Masses CSE 591: GPU Programming Introduction Computer games need to have: realistic appearance of characters and objects believable and creative shading,
More informationSqueezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques
Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques Jonathan Zarge, Team Lead Performance Tools Richard Huddy, European Developer Relations Manager ATI
More informationPowerVR Series5. Architecture Guide for Developers
Public Imagination Technologies PowerVR Series5 Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.
More informationCHAPTER 1 Graphics Systems and Models 3
?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........
More informationEvolution of GPUs Chris Seitz
Evolution of GPUs Chris Seitz Overview Concepts: Real-time rendering Hardware graphics pipeline Evolution of the PC hardware graphics pipeline: 1995-1998: Texture mapping and z-buffer 1998: Multitexturing
More informationArchitectures. Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1
Architectures Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1 Overview of today s lecture The idea is to cover some of the existing graphics
More informationCSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015
CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 2 due tomorrow at 2pm Grading window
More informationCSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University
CSE 591/392: GPU Programming Introduction Klaus Mueller Computer Science Department Stony Brook University First: A Big Word of Thanks! to the millions of computer game enthusiasts worldwide Who demand
More informationModels and Architectures
Models and Architectures Objectives Learn the basic design of a graphics system Introduce graphics pipeline architecture Examine software components for an interactive graphics system 1 Image Formation
More informationRendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane
Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world
More informationBringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games
Bringing AAA graphics to mobile platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Platform team at Epic Games Unreal Engine 15 years in the industry 30 years of programming
More informationRendering Objects. Need to transform all geometry then
Intro to OpenGL Rendering Objects Object has internal geometry (Model) Object relative to other objects (World) Object relative to camera (View) Object relative to screen (Projection) Need to transform
More informationCS8803SC Software and Hardware Cooperative Computing GPGPU. Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology
CS8803SC Software and Hardware Cooperative Computing GPGPU Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology Why GPU? A quiet revolution and potential build-up Calculation: 367
More informationGeForce4. John Montrym Henry Moreton
GeForce4 John Montrym Henry Moreton 1 Architectural Drivers Programmability Parallelism Memory bandwidth 2 Recent History: GeForce 1&2 First integrated geometry engine & 4 pixels/clk Fixed-function transform,
More informationCiril Bohak. - INTRODUCTION TO WEBGL
2016 Ciril Bohak ciril.bohak@fri.uni-lj.si - INTRODUCTION TO WEBGL What is WebGL? WebGL (Web Graphics Library) is an implementation of OpenGL interface for cmmunication with graphical hardware, intended
More informationThe Graphics Pipeline
The Graphics Pipeline Ray Tracing: Why Slow? Basic ray tracing: 1 ray/pixel Ray Tracing: Why Slow? Basic ray tracing: 1 ray/pixel But you really want shadows, reflections, global illumination, antialiasing
More informationCurrent Trends in Computer Graphics Hardware
Current Trends in Computer Graphics Hardware Dirk Reiners University of Louisiana Lafayette, LA Quick Introduction Assistant Professor in Computer Science at University of Louisiana, Lafayette (since 2006)
More informationPipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11
Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION
More informationCS 354R: Computer Game Technology
CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring
More informationProgramming Graphics Hardware
Tutorial 5 Programming Graphics Hardware Randy Fernando, Mark Harris, Matthias Wloka, Cyril Zeller Overview of the Tutorial: Morning 8:30 9:30 10:15 10:45 Introduction to the Hardware Graphics Pipeline
More informationE.Order of Operations
Appendix E E.Order of Operations This book describes all the performed between initial specification of vertices and final writing of fragments into the framebuffer. The chapters of this book are arranged
More informationWindowing System on a 3D Pipeline. February 2005
Windowing System on a 3D Pipeline February 2005 Agenda 1.Overview of the 3D pipeline 2.NVIDIA software overview 3.Strengths and challenges with using the 3D pipeline GeForce 6800 220M Transistors April
More informationOptimizing Games for ATI s IMAGEON Aaftab Munshi. 3D Architect ATI Research
Optimizing Games for ATI s IMAGEON 2300 Aaftab Munshi 3D Architect ATI Research A A 3D hardware solution enables publishers to extend brands to mobile devices while remaining close to original vision of
More informationPowerVR Hardware. Architecture Overview for Developers
Public Imagination Technologies PowerVR Hardware Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.
More informationToday. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline
Computergrafik Today Rendering pipeline s View volumes, clipping Viewport Matthias Zwicker Universität Bern Herbst 2008 Rendering pipeline Rendering pipeline Hardware & software that draws 3D scenes on
More informationRasterization and Graphics Hardware. Not just about fancy 3D! Rendering/Rasterization. The simplest case: Points. When do we care?
Where does a picture come from? Rasterization and Graphics Hardware CS559 Course Notes Not for Projection November 2007, Mike Gleicher Result: image (raster) Input 2D/3D model of the world Rendering term
More informationCS451Real-time Rendering Pipeline
1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does
More informationCS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside
CS230 : Computer Graphics Lecture 4 Tamar Shinar Computer Science & Engineering UC Riverside Shadows Shadows for each pixel do compute viewing ray if ( ray hits an object with t in [0, inf] ) then compute
More informationScanline Rendering 2 1/42
Scanline Rendering 2 1/42 Review 1. Set up a Camera the viewing frustum has near and far clipping planes 2. Create some Geometry made out of triangles 3. Place the geometry in the scene using Transforms
More informationPipeline Operations. CS 4620 Lecture 14
Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives
More information3D buzzwords. Adding programmability to the pipeline 6/7/16. Bandwidth Gravity of modern computer systems
Bandwidth Gravity of modern computer systems GPUs Under the Hood Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology The bandwidth between key components
More informationToday s Agenda. DirectX 9 Features Sim Dietrich, nvidia - Multisample antialising Jason Mitchell, ATI - Shader models and coding tips
Today s Agenda DirectX 9 Features Sim Dietrich, nvidia - Multisample antialising Jason Mitchell, ATI - Shader models and coding tips Optimization for DirectX 9 Graphics Mike Burrows, Microsoft - Performance
More informationGPGPU. Peter Laurens 1st-year PhD Student, NSC
GPGPU Peter Laurens 1st-year PhD Student, NSC Presentation Overview 1. What is it? 2. What can it do for me? 3. How can I get it to do that? 4. What s the catch? 5. What s the future? What is it? Introducing
More informationProgrammable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1
Programmable GPUs Real Time Graphics Virtua Fighter 1995 (SEGA Corporation) NV1 Dead or Alive 3 2001 (Tecmo Corporation) Xbox (NV2A) Nalu 2004 (NVIDIA Corporation) GeForce 6 Human Head 2006 (NVIDIA Corporation)
More informationRasterization Overview
Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer
More informationECE 574 Cluster Computing Lecture 16
ECE 574 Cluster Computing Lecture 16 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 26 March 2019 Announcements HW#7 posted HW#6 and HW#5 returned Don t forget project topics
More information- Rasterization. Geometry. Scan Conversion. Rasterization
Computer Graphics - The graphics pipeline - Geometry Modelview Geometry Processing Lighting Perspective Clipping Scan Conversion Texturing Fragment Tests Blending Framebuffer Fragment Processing - So far,
More informationProgramming Guide. Aaftab Munshi Dan Ginsburg Dave Shreiner. TT r^addison-wesley
OpenGUES 2.0 Programming Guide Aaftab Munshi Dan Ginsburg Dave Shreiner TT r^addison-wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid
More informationShaders. Slide credit to Prof. Zwicker
Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?
More informationOptimizing for DirectX Graphics. Richard Huddy European Developer Relations Manager
Optimizing for DirectX Graphics Richard Huddy European Developer Relations Manager Also on today from ATI... Start & End Time: 12:00pm 1:00pm Title: Precomputed Radiance Transfer and Spherical Harmonic
More informationCg 2.0. Mark Kilgard
Cg 2.0 Mark Kilgard What is Cg? Cg is a GPU shading language C/C++ like language Write vertex-, geometry-, and fragmentprocessing kernels that execute on massively parallel GPUs Productivity through a
More informationGraphics Pipeline & APIs
Graphics Pipeline & APIs CPU Vertex Processing Rasterization Fragment Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,
More informationCS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST
CS 380 - GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1 Markus Hadwiger, KAUST Reading Assignment #4 (until Feb. 23) Read (required): Programming Massively Parallel Processors book, Chapter
More informationModule 13C: Using The 3D Graphics APIs OpenGL ES
Module 13C: Using The 3D Graphics APIs OpenGL ES BREW TM Developer Training Module Objectives See the steps involved in 3D rendering View the 3D graphics capabilities 2 1 3D Overview The 3D graphics library
More informationPerformance OpenGL Programming (for whatever reason)
Performance OpenGL Programming (for whatever reason) Mike Bailey Oregon State University Performance Bottlenecks In general there are four places a graphics system can become bottlenecked: 1. The computer
More informationCould you make the XNA functions yourself?
1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which
More informationCS195V Week 9. GPU Architecture and Other Shading Languages
CS195V Week 9 GPU Architecture and Other Shading Languages GPU Architecture We will do a short overview of GPU hardware and architecture Relatively short journey into hardware, for more in depth information,
More informationIntroduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico Models and Architectures
More informationWhat s New with GPGPU?
What s New with GPGPU? John Owens Assistant Professor, Electrical and Computer Engineering Institute for Data Analysis and Visualization University of California, Davis Microprocessor Scaling is Slowing
More informationGPU Computation Strategies & Tricks. Ian Buck NVIDIA
GPU Computation Strategies & Tricks Ian Buck NVIDIA Recent Trends 2 Compute is Cheap parallelism to keep 100s of ALUs per chip busy shading is highly parallel millions of fragments per frame 0.5mm 64-bit
More informationCS 464 Review. Review of Computer Graphics for Final Exam
CS 464 Review Review of Computer Graphics for Final Exam Goal: Draw 3D Scenes on Display Device 3D Scene Abstract Model Framebuffer Matrix of Screen Pixels In Computer Graphics: If it looks right then
More informationGraphics Performance Optimisation. John Spitzer Director of European Developer Technology
Graphics Performance Optimisation John Spitzer Director of European Developer Technology Overview Understand the stages of the graphics pipeline Cherchez la bottleneck Once found, either eliminate or balance
More informationBuilding scalable 3D applications. Ville Miettinen Hybrid Graphics
Building scalable 3D applications Ville Miettinen Hybrid Graphics What s going to happen... (1/2) Mass market: 3D apps will become a huge success on low-end and mid-tier cell phones Retro-gaming New game
More informationSpring 2010 Prof. Hyesoon Kim. AMD presentations from Richard Huddy and Michael Doggett
Spring 2010 Prof. Hyesoon Kim AMD presentations from Richard Huddy and Michael Doggett Radeon 2900 2600 2400 Stream Processors 320 120 40 SIMDs 4 3 2 Pipelines 16 8 4 Texture Units 16 8 4 Render Backens
More informationSHADER PROGRAMMING. Based on Jian Huang s lecture on Shader Programming
SHADER PROGRAMMING Based on Jian Huang s lecture on Shader Programming What OpenGL 15 years ago could do http://www.neilturner.me.uk/shots/opengl-big.jpg What OpenGL can do now What s Changed? 15 years
More informationSupplement to Lecture 22
Supplement to Lecture 22 Programmable GPUs Programmable Pipelines Introduce programmable pipelines - Vertex shaders - Fragment shaders Introduce shading languages - Needed to describe shaders - RenderMan
More informationLast Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Fall 2015 Lecture 9 October 1, 2015 What I was going to say last time How are the ideas we ve learned about implemented in hardware so they are fast. Important:
More informationCS452/552; EE465/505. Clipping & Scan Conversion
CS452/552; EE465/505 Clipping & Scan Conversion 3-31 15 Outline! From Geometry to Pixels: Overview Clipping (continued) Scan conversion Read: Angel, Chapter 8, 8.1-8.9 Project#1 due: this week Lab4 due:
More informationFor Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization
More informationDave Shreiner, ARM March 2009
4 th Annual Dave Shreiner, ARM March 2009 Copyright Khronos Group, 2009 - Page 1 Motivation - What s OpenGL ES, and what can it do for me? Overview - Lingo decoder - Overview of the OpenGL ES Pipeline
More informationThe Application Stage. The Game Loop, Resource Management and Renderer Design
1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data
More informationWorking with Metal Overview
Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationCornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary
Cornell University CS 569: Interactive Computer Graphics Introduction Lecture 1 [John C. Stone, UIUC] 2008 Steve Marschner 1 2008 Steve Marschner 2 NASA University of Calgary 2008 Steve Marschner 3 2008
More informationLecture 25: Board Notes: Threads and GPUs
Lecture 25: Board Notes: Threads and GPUs Announcements: - Reminder: HW 7 due today - Reminder: Submit project idea via (plain text) email by 11/24 Recap: - Slide 4: Lecture 23: Introduction to Parallel
More informationGraphics Pipeline & APIs
3 2 4 Graphics Pipeline & APIs CPU Vertex Processing Rasterization Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,
More informationOpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.
OpenGl Pipeline Individual Vertices Transformed Vertices Commands Processor Per-vertex ops Primitive assembly triangles, lines, points, images Primitives Fragments Rasterization Texturing Per-fragment
More informationLast Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization
More informationPipeline Operations. CS 4620 Lecture 10
Pipeline Operations CS 4620 Lecture 10 2008 Steve Marschner 1 Hidden surface elimination Goal is to figure out which color to make the pixels based on what s in front of what. Hidden surface elimination
More informationShader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express
Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express Level: Intermediate Area: Graphics Programming Summary This document is an introduction to the series of samples,
More informationGPU Target Applications
John Montrym Henry Moreton GPU Target Applications (Graphics Processing Unit) 1 Interactive Gaming (50M units, 10M gamers) Cinematic quality rendering in real time. Digital Content Creation (DCC) (1M prof,
More informationProgrammable Graphics Hardware
Programmable Graphics Hardware Outline 2/ 49 A brief Introduction into Programmable Graphics Hardware Hardware Graphics Pipeline Shading Languages Tools GPGPU Resources Hardware Graphics Pipeline 3/ 49
More information2.11 Particle Systems
2.11 Particle Systems 320491: Advanced Graphics - Chapter 2 152 Particle Systems Lagrangian method not mesh-based set of particles to model time-dependent phenomena such as snow fire smoke 320491: Advanced
More information! Readings! ! Room-level, on-chip! vs.!
1! 2! Suggested Readings!! Readings!! H&P: Chapter 7 especially 7.1-7.8!! (Over next 2 weeks)!! Introduction to Parallel Computing!! https://computing.llnl.gov/tutorials/parallel_comp/!! POSIX Threads
More informationGrafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL
Grafica Computazionale: Lezione 30 Grafica Computazionale lezione30 Introduction to OpenGL Informatica e Automazione, "Roma Tre" May 20, 2010 OpenGL Shading Language Introduction to OpenGL OpenGL (Open
More informationThreading Hardware in G80
ing Hardware in G80 1 Sources Slides by ECE 498 AL : Programming Massively Parallel Processors : Wen-Mei Hwu John Nickolls, NVIDIA 2 3D 3D API: API: OpenGL OpenGL or or Direct3D Direct3D GPU Command &
More informationCS130 : Computer Graphics. Tamar Shinar Computer Science & Engineering UC Riverside
CS130 : Computer Graphics Tamar Shinar Computer Science & Engineering UC Riverside Raster Devices and Images Raster Devices Hearn, Baker, Carithers Raster Display Transmissive vs. Emissive Display anode
More informationgraphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1
graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time
More informationGraphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university
Graphics Architectures and OpenCL Michael Doggett Department of Computer Science Lund university Overview Parallelism Radeon 5870 Tiled Graphics Architectures Important when Memory and Bandwidth limited
More information