COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS SOFTWARE.
Advertisements

Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Graphics Pipeline.
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
Prepared 5/24/2011 by T. O’Neil for 3460:677, Fall 2011, The University of Akron.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
Parallel Graphics Rendering Matthew Campbell Senior, Computer Science
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
May 8, 2007Farid Harhad and Alaa Shams CS7080 Over View of the GPU Architecture CS7080 Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad &
Computer Graphics Graphics Hardware
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Cg Programming Mapping Computational Concepts to GPUs.
A Sorting Classification of Parallel Rendering Molnar et al., 1994.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
Introduction to Parallel Rendering Jian Huang, CS 594, Spring 2002.
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Lecture.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Ray Tracing using Programmable Graphics Hardware
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
The Graphics Pipeline Revisited Real Time Rendering Instructor: David Luebke.
Computer Architecture Lecture 24 Parallel Processing Ralph Grishman November 2015 NYU.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 GPU.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
A Sorting Classification of Parallel Rendering Molnar et al., 1994.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Models and Architectures 靜宜大學 資訊工程系 蔡奇偉 副教授 2012.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Computer Graphics Graphics Hardware
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Week 2 - Friday CS361.
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Graphics Processing Unit
Introduction to OpenGL
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Graphics Processing Unit
Computer Graphics Graphics Hardware
Graphics Processing Unit
Introduction to OpenGL
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM

GRAPHICS PROCESSING UNITS CS 482 – FALL 2014 HISTORICAL CONTEXT NOVEMBER 10, 2014: GRAPHICS HARDWAREPAGE 265 EARLY 1990’S VGA CONTROLLERS ALSO KNOWN AS A “GRAPHICS ACCELERATORS”, A VIDEO GRAPHICS ARRAY CONTROLLER COMBINED A MEMORY CONTROLLER AND A DISPLAY GENERATOR WITH ATTACHED DRAM. THESE CONTROLLERS CONTAINED FIXED FUNCTION CAPABILITIES FOR TRIANGULATION, RASTERIZATION, AND TEXTURE MAPPING. EARLY 2000’S FIRST GPUS WITH INCREASED PROCESSING POWER BEING DEMANDED, ESPECIALLY BY THE GAME INDUSTRY, CHIP DEVELOPERS BEGAN ADDING ENOUGH TO GPUS TO RIVAL THAT IN CPUS. THE FIXED FUNCTION CAPABILITIES WERE EXTENDED TO INCLUDE TRANSFORMATIONS, LIGHTING, AND SHADING. EARLY 2010’S MODERN GPUS FIXED FUNCTION DEDICATED LOGIC ON THESE CHIPS WAS REPLACED BY PROGRAMMABLE PROCESSORS. INTEGER ARITHMETIC WAS REPLACED WITH FLOATING- POINT ARITHMETIC. PARALLELISM WAS VASTLY INCREASED ON THE CHIPS. INSTRUCTIONS AND MEMORY BEGAN TO BE ADDED TO ALLOW GPUS TO BE USED FOR GENERAL PURPOSE PROGRAMMING, NOT JUST GRAPHICS.

GRAPHICS PROCESSING UNITS CS 482 – FALL 2014 DISTINGUISHING FEATURES NOVEMBER 10, 2014: GRAPHICS HARDWAREPAGE 266 AS INSTRUCTION SETS AND MEMORY EXPAND ON GPUS, THEY BECOME INCREASINGLY CAPABLE OF GENERAL PURPOSE PROCESSING, BUT THERE ARE STILL IMPORTANT DIFFERENCES BETWEEN GPUS AND CPUS. GPU INSTRUCTION SETS ARE STILL RATHER NARROWLY DEFINED, FOCUSING ON GRAPHICS ACCELERATIO N. GPU PROGRAMMING INTERFACES ARE HIGH- LEVEL APIS LIKE OPENGL AND DIRECTX, TOGETHER WITH HIGH- LEVEL SHADING LANGUAGES LIKE CG (C FOR GRAPHICS) AND HLSL (HIGH LEVEL SHADER LANGUAGE). THESE ARE SUPPORTED BY COMPILERS THAT GENERATE INTERMEDIATE LANGUAGES, WHICH ARE OPTIMIZED BY THE SPECIFIC GPU DRIVER SOFTWARE THAT GENERATES THE GPU’S MACHINE INSTRUCTIONS. GPU PROGRAMMING INTERFACES ARE HIGH- LEVEL APIS LIKE OPENGL AND DIRECTX, TOGETHER WITH HIGH- LEVEL SHADING LANGUAGES LIKE CG (C FOR GRAPHICS) AND HLSL (HIGH LEVEL SHADER LANGUAGE). THESE ARE SUPPORTED BY COMPILERS THAT GENERATE INTERMEDIATE LANGUAGES, WHICH ARE OPTIMIZED BY THE SPECIFIC GPU DRIVER SOFTWARE THAT GENERATES THE GPU’S MACHINE INSTRUCTIONS. GRAPHICS PROCESSING INVOLVES MANY STAGES OF OPERATIONS, SUCH AS VERTEX SHADING, GEOMETRY SHADING, RASTERIZATION, AND FRAGMENT SHADING, WHICH ARE PERFORMED ON A MASSIVELY PARALLEL SCALE IN A PIPELINED FASHION. VERTICES CAN BE DRAWN INDEPENDENTLY AND FRAGMENTS CAN BE RENDERED INDEPENDENTLY, ALLOWING COMPUTATION TO TAKE PLACE ALONG MANY PARALLEL THREADS OF CONTROL, RELYING ON THOSE THREADS TO HIDE LATENCY RATHER THAN RELYING ON CACHES TO AVOID LATENCY.

PARALLELISM CS 482 – FALL 2014 PARALLEL RENDERING NOVEMBER 10, 2014: GRAPHICS HARDWAREPAGE 267 FRAME BUFFER RASTER PROCESSORS GEOMETRY PROCESSORS WHEN RENDERING WAS HANDLED BY SERIAL PROCESSING MANAGED BY THE CPU, GRAPHICAL PRIMITIVES WERE PERIODICALLY FED TO A GPU, BUT MODERN PROGRAMMERS MUST ADDRESS THE PARALLELISM OF MULTIPLE CPUS AND GPUS. OBJECTS MAY BE SUBMITTED TO THE FRAME BUFFER IN ANY ORDER, BUT THEY MUST BE SORTED AS A LAST STEP BEFORE RASTERIZATION FOR TWO REASONS: TRANSPARENT OBJECTS NEED TO BE DRAWN BACK-TO- FRONT SO ANYTHING BEHIND A TRANSPARENT OBJECT SHOWS THROUGH. GPU STATE CHANGES (UPLOADING TEXTURES, ACTIVATING LIGHTING, ETC.) CAN BE EXPENSIVE, SO SORTING ALL SIMILAR STATES TOGETHER (EVERYTHING WITH THE SAME TEXTURE, THINGS THAT ARE LIT, ETC.), MINIMIZES STATE CHANGES, AND THE GPU TAKES LESS TIME TO RENDER THE SCENE. IN GENERAL, A MULTIPROCESSOR-BASED PARALLEL PIPELINE DISTRIBUTES GEOMETRY AMONG SEVERAL PROCESSORS, WHOSE RESULTS MUST ULTIMATELY BE GATHERED TOGETHER INTO THE FRAME BUFFER. DATABASE

PARALLELISM CS 482 – FALL 2014 SORT-FIRST MULTIPROCESSOR-BASED ARCHITECTURE NOVEMBER 10, 2014: GRAPHICS HARDWAREPAGE 268 FRAME BUFFER RASTER PROCESSORS GEOMETRY PROCESSORS DATABASE SUBDIVIDE THE FRAME BUFFER INTO TILES THAT ARE MAPPED TO THE AVAILABLE PROCESSORS, DISTRIBUTING PRIMITIVES TO PROCESSORS BASED UPON THEIR TILES. COUPLE EACH GEOMETRY PROCESSOR WITH A RASTERIZER TO FORM A COMPLETE RENDERING UNIT. P1P1 P2 P3 P4 1.SUBDIVIDE THE SCREEN P1:P2:P3:P4: ADVANTAGE: THIS ARCHITECTURE CAN EXPLOIT FRAME-TO-FRAME COHERENCE, REDISTRIBUTING PRIMITIVES TO PROCESSORS ONLY WHEN THEY MOVE BETWEEN SCREEN REGIONS. 2.“PRE-TRANSFORM” THE PRIMITIVES INTO SCREEN COORDINATES VIA BOUNDING BOXES 3.DISTRIBUTE THE PRIMITIVES 4.EACH PROCESSOR RENDERS ITS OWN PRIMITIVES 5.NO COMMUNICATION NEEDED AFTERWARDS DISADVANTAGE: IT IS SUSCEPTIBLE TO LOAD IMBALANCES SINCE SOME PORTIONS OF THE SCREEN MAY HAVE MANY MORE THINGS TO RENDER THAN OTHER PORTIONS.

PARALLELISM CS 482 – FALL 2014 SORT-MIDDLE MULTIPROCESSOR-BASED ARCHITECTURE NOVEMBER 10, 2014: GRAPHICS HARDWAREPAGE 269 FRAME BUFFER RASTER PROCESSORS GEOMETRY PROCESSORS DATABASE PRIMITIVES ARE TRANSFORMED INTO SCREEN COORDINATES, SORTED BY REGION, AND ROUTED FROM GEOMETRY PROCESSORS TO RASTERIZERS, WHICH RENDER THEIR REGION. FRAGMENTS ARE THEN COLLECTED AND ASSEMBLED INTO THE FRAME BUFFER. P1: 1.ARBITRARY ASSIGNMENT P2: P3: P4: P1: P3: RASTERIZATION ADVANTAGE: IN THIS ARCHITECTURE, GEOMETRY CAN BE DISTRIBUTED AMONG PROCESSORS WITHOUT REGARD TO THE SUBDIVISION OF THE SCREEN. P1P1 P2 P3 P4 P2: P4: DISADVANTAGE: POOR LOAD DISTRIBUTION - SOME AREAS OF SCREEN MAY BE RELATIVELY EMPTY. DISADVANTAGE: LATENCY - ALL PROCESSORS MUST FINISH BEFORE FINAL IMAGE IS COMPOSED. DISADVANTAGE: ORDER- DEPENDENT PRIMITIVES (SUCH AS TRANSPARENT OBJECTS) ARE DIFFICULT TO ACCOMMODATE SINCE FRAGMENTS ARRIVE FOR PROCESSING IN NONDETERMINISTIC ORDER. 2.GEOMETRY PROCESSING 3.SORTING

PARALLELISM CS 482 – FALL 2014 SORT-LAST MULTIPROCESSOR-BASED ARCHITECTURE NOVEMBER 10, 2014: GRAPHICS HARDWAREPAGE 270 FRAME BUFFER RASTER PROCESSORS GEOMETRY PROCESSORS DATABASE RENDERERS ARE RESPONSIBLE FOR RENDERING A FULL-SCREEN IMAGE USING THEIR SHARE OF THE PRIMITIVES. EACH PROCESSOR IS ASSIGNED A SHARE OF THE PRIMITIVES AND RENDERS THEM AS A COMPLETE SCENE. ADVANTAGE: NO REQUIREMENT TO SORT OR REDISTRIBUTE PRIMITIVES; EACH RENDERER COMPUTES ITS IMAGE AS IF IT WERE THE ONLY RENDERER IN THE SYSTEM. THE PARTIAL IMAGES ARE COMPOSITED TOGETHER, TAKING INTO ACCOUNT THE DISTANCE OF EACH PIXEL IN EACH LAYER FROM THE CAMERA, WHICH GUARANTEES THAT THE RESULTS OF THE INDIVIDUAL RENDERERS ARE LAYERED CORRECTLY. P1P1 P2P3P4 P1P1 P2P3P4 DISADVANTAGE: IT REQUIRES A HIGH BANDWIDTH IMAGE COMPOSITOR. EACH PROCESSOR IS ASSIGNED A SECTOR’S PORTION OF THE SUB-SCENES AND SORTS THE IMAGES WITH Z- COMPOSITING/Z- BUFFER