Graphics and Imaging Architectures

Similar documents
Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Comparing Reyes and OpenGL on a Stream Architecture

Lecture 4: Geometry Processing. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

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

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

A Real-time Micropolygon Rendering Pipeline. Kayvon Fatahalian Stanford University

Scheduling the Graphics Pipeline on a GPU

frame buffer depth buffer stencil buffer

CS427 Multicore Architecture and Parallel Computing

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes

GPU Architecture. Michael Doggett Department of Computer Science Lund university

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

Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

GPU Architecture and Function. Michael Foster and Ian Frasch

Lecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Antonio R. Miele Marco D. Santambrogio

Further Developing GRAMPS. Jeremy Sugerman FLASHG January 27, 2009

The Rasterization Pipeline

GPU-Based Volume Rendering of. Unstructured Grids. João L. D. Comba. Fábio F. Bernardon UFRGS

Current Trends in Computer Graphics Hardware

Using Graphics Chips for General Purpose Computation

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010

Multimedia in Mobile Phones. Architectures and Trends Lund

Course Recap + 3D Graphics on Mobile GPUs

Pat Hanrahan. Modern Graphics Pipeline. How Powerful are GPUs? Application. Command. Geometry. Rasterization. Fragment. Display.

Parallel Programming for Graphics

GRAPHICS HARDWARE. Niels Joubert, 4th August 2010, CS147

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Mobile AR Hardware Futures

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

Graphics Hardware. Instructor Stephen J. Guy

Introduction to Modern GPU Hardware

Advanced Computer Graphics (CS & SE ) Lecture 7

Beyond Programmable Shading Course ACM SIGGRAPH 2010 Panel: Fixed-Function Hardware

A Trip Down The (2011) Rasterization Pipeline

Real-Time Graphics Architecture

Spring 2009 Prof. Hyesoon Kim

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

ASYNCHRONOUS SHADERS WHITE PAPER 0

Challenges for GPU Architecture. Michael Doggett Graphics Architecture Group April 2, 2008

From Shader Code to a Teraflop: How Shader Cores Work

From Shader Code to a Teraflop: How GPU Shader Cores Work. Jonathan Ragan- Kelley (Slides by Kayvon Fatahalian)

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Shaders. Slide credit to Prof. Zwicker

What Next? Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. * slides thanks to Kavita Bala & many others

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

Accessing the GPU & the GPUImage Library

Introduction. (Thanks to Professions Andries van Dam and John Hughes) CMSC 635 January 15, 2013 Introduction # /16

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

National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor

PowerVR Hardware. Architecture Overview for Developers

The F-Buffer: A Rasterization-Order FIFO Buffer for Multi-Pass Rendering. Bill Mark and Kekoa Proudfoot. Stanford University

Lecture 7: The Programmable GPU Core. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Shaders CSCI 4239/5239 Advanced Computer Graphics Spring 2014

Spring 2011 Prof. Hyesoon Kim

Accessing the GPU & the GPUImage Library

Lecture 10: Part 1: Discussion of SIMT Abstraction Part 2: Introduction to Shading

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

Mention driver developers in the room. Because of time this will be fairly high level, feel free to come talk to us afterwards

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

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Beyond Programmable Shading 2012

Copyright Khronos Group Page 1

Real-Time Graphics Architecture

Case 1:17-cv SLR Document 1-3 Filed 01/23/17 Page 1 of 33 PageID #: 60 EXHIBIT C

Shaders CSCI 4229/5229 Computer Graphics Fall 2017

Chapter 1 Introduction

GPU Architecture. Robert Strzodka (MPII), Dominik Göddeke G. TUDo), Dominik Behr (AMD)

20 Years of OpenGL. Kurt Akeley. Copyright Khronos Group, Page 1

Overview. Computer Graphics CS324. OpenGL. Books. Learning Resources. CS131 Notes. 30 Lectures 3hr Exam

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

Computer Graphics CS 543 Lecture 1 (Part I) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Heterogeneous Parallelism and Hardware Specialization

Development of Computer Graphics

Graphics Processing Unit Architecture (GPU Arch)

GPGPU, 1st Meeting Mordechai Butrashvily, CEO GASS

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

Real-Time Graphics Architecture. Kurt Akeley Pat Hanrahan. Ray Tracing.

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

Introduction to Computer Graphics. Overview. What is Computer Graphics?

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

The Benefits of GPU Compute on ARM Mali GPUs

Lecture 13: OpenGL Shading Language (GLSL)

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

CS GPU and GPGPU Programming Lecture 8+9: GPU Architecture 7+8. Markus Hadwiger, KAUST

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

Lecture 10: Shading Languages. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Computer Graphics Software & Hardware. NBAY 6120 Lecture 6 Donald P. Greenberg March 16, 2016

MSAA- Based Coarse Shading

The Rasterization Pipeline

SIGGRAPH Briefing August 2014

Anatomy of AMD s TeraScale Graphics Engine

GPU A rchitectures Architectures Patrick Neill May

Enabling a Richer Multimedia Experience with GPU Compute. Roberto Mijat Visual Computing Marketing Manager

Spring 2010 Prof. Hyesoon Kim. AMD presentations from Richard Huddy and Michael Doggett

GPU! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room, Bld 20! 11 December, 2017!

GPGPU introduction and network applications. PacketShaders, SSLShader

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

Transcription:

Graphics and Imaging Architectures Kayvon Fatahalian http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/

About Kayvon New faculty, just arrived from Stanford Dissertation: Evolving real-time graphics pipeline for micropolygon rendering (micropolygon meshes = high-resolution meshes used in off-line rendering for film) In addition to rendering: involved in many research projects related to computing on GPUs - Brook (precursor to CUDA/OpenCL) - Sequoia (locality-aware parallel programming language) - GRAMPS (stream computing for heterogeneous HW)

COMPUTING IS BECOMING HIGHLY VISUAL! Visually rich user interfaces (that require 3D graphics!) Innovative new input modalities (touch, gyro, cameras) Ubiquitous, high-resolution cameras (emergence of computational photography) Games, entertainment (continuous push towards higher visual realism)

COMPUTING EFFICIENTLY IS INCREASINGLY CRITICAL! Ubiquitous parallelism Core i7 (Nahalem) Heterogeneous parallelism Power constraints Mobile, mobile, mobile Real-time 3D graphics has always found a way to consume all available compute: GPUs are efficient parallel, heterogeneous systems (that are relatively easy to program)

My Macbook Pro 2011 (two GPUs) AMD Radeon HD GPU Quad-core Intel Core i7 CPU (Contains integrated Intel GPU) From ifixit.com teardown

ipad 2 main board Apple A5 SoC Dual-core ARM CPU Image processing DSP GPU Video Encode/ Decode Flash memory From ifixit.com teardown

Touchscreen controller (integrated DSP) ~ $1 From US Patent Application 2006/0097991

My Nikon D7000 camera 16.2 MP sensor 14 bits per pixel 6 fps burst

What this course is This is a course about how real-time graphics systems work GRAPHICS ALGORITHMS (the workload) mapping/scheduling MACHINE ORGANIZATION geometry processing rasterization texture mapping anti-aliasing Parallelism Locality Communication The design of throughput processing cores The role of fixed-function HW

What this course is This is a course about how real-time graphics systems work GRAPHICS ALGORITHMS (the workload) mapping/scheduling MACHINE ORGANIZATION ABSTRACTIONS (the real-time graphics pipeline) choice of primitives level of abstraction

What this course is not This is not an [OpenGL, CUDA, OpenCL] programming course - But we will be discussing the design of these abstractions (and their future) in great detail!

Logistics 1: schedule Expect it to be fluid - it s my first time doing this - students in this class have wide variation in background - http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/ First half of class: focused on real-time 3D graphics - 3D graphics abstractions and the implementation of the real-time 3D graphics pipeline (e.g., OpenGL/Direct3D) on modern GPUs Second half of class: broader sampling of applications and systems - future 3D graphics pipelines, GPU programming model issues (OpenCL/ CUDA), hybrid CPU/GPUs, image processing architectures, cameras Several external speakers (AMD, Intel, NVIDIA)

Logistics 2: expectations This is a reading/project course (40%) Paper readings - Weekly: you will be asked to submit brief reviews of selected papers (or answer a specific questions) - Participate in class discussions (10%) Two quick (2-3 day) C++ programming assignments - Meant to concretize concepts, not stress you out (50%) Semester-long, self-selected research project (teams of 1-2) - Aim for publishable results

3D rendering Image credit: Henrik Wann Jensen Model of a scene: 3D surface geometry (e.g., triangle mesh) surface materials lights camera Image How does each triangle contribute to each pixel in the image?

What is an architecture? (white board)

Real-time graphics pipeline (entities) 3 1 4 2 Vertices Primitives (triangles, points, lines) Fragments Pixels

Real-time graphics pipeline (operations) Vertex Generation 1 3 4 Vertices in 3D space Vertices Vertex stream 2 Vertex Processing Primitives Fragments Pixels Vertex stream Primitive Generation Primitive stream Primitive Processing Primitive stream Fragment Generation (Rasterization) Fragment stream Fragment Processing Fragment stream Pixel Operations Vertices in positioned on screen Triangles positioned on screen Fragments (one per each covered pixel) Shaded fragments Output image (pixels)

Real-time graphics pipeline (state) Memory Buffers (system state) Vertices Primitives Fragments Pixels Vertex Generation Vertex stream Vertex Processing Vertex stream Primitive Generation Primitive stream Primitive Processing Primitive stream Fragment Generation (Rasterization) Fragment stream Fragment Processing Fragment stream Pixel Operations 3 1 4 2 Vertex Data buffers Texture buffers Vertex transform matrices Texture buffers Texture buffers Output image buffer

History: Evolution of interactive 3D graphics Following slides borrowed from Kurt Akeley and Pat Hanrahan http://graphics.stanford.edu/wikis/cs448-07-spring

Slide credit Kurt Akeley and Pat Hanrahan

Early years Evans and Sutherland built machines for flight simulators throughout the 70s Early 80s: Custom ASIC for geometry processing - The Geometry Engine: a VLSI Geometry System for Graphics (Jim Clark, SIGGRAPH 82) - Work started at Stanford (led to Silicon Graphics, 1982)

Slide credit Kurt Akeley and Pat Hanrahan

Slide credit Kurt Akeley and Pat Hanrahan

Slide credit Kurt Akeley and Pat Hanrahan

Slide credit Kurt Akeley and Pat Hanrahan

Slide credit Kurt Akeley and Pat Hanrahan

Off-line rendering for film Off-line graphics advancing as well Image credit: Pixar, Toy Story 1, 1995 - Pixar created in 1986 - Initially thought they were going to build hardware (Pixar image computer) Reyes graphics system at Pixar (Renderman) - Feature rich: smooth/complex surfaces, programmable shading, anti-aliasing, motion blur - Implemented as a software application on CPUs - Hours/frame

Early PC graphics Wolfenstein 3D, 1992 Doom, 1993 Software applications running on CPU Extreme amount of software optimization, algorithm development (and hacks)

PC 3D graphics 3D graphics acceleration for PC motivated by games add-in boards made by 3DFX, NVIDIA, ATI, PowerVR, and more - 3DFX founders were from SGI - 3DFX Voodoo (1997) standardized around accelerating OpenGL/Direct3D - offloaded rasterization, texture mapping, frame-buffer processing - initially only subset of GL implemented by Quake Quake 1

Slide credit Kurt Akeley and Pat Hanrahan

Fourth generation Programmable shading

Current generation Tessellation (smooth/complex surfaces) Image credit: NVIDIA/Unigine

Current generation Some GPU computations now driven by alternative programming interface (not 3D graphics pipeline) - to augment 3D rendering (game physics, global lighting) - for non-graphics applications (scientific computing) Image credit: NVIDIA Image credit: Folding @ Home

Today: high versatility, high peak compute Intel Core i7 (quad-core CPU) ~100 GFLOPS 730 million transistors AMD Radeon HD 5870 GPU ~2.7 TFLOPS 2.2 billion transistors More compute power than Pixar s entire render farm for Toy Story 1!

Readings D. Blythe, The Rise of the Graphics Processor Proceedings of the IEEE, 2008 Real-Time Rendering, Ch 2. The Graphics Rendering Pipeline (handout)