General-Purpose Computation on Graphics Hardware.

Slides:



Advertisements
Similar presentations
Is There a Real Difference between DSPs and GPUs?
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Photon Mapping on Programmable Graphics Hardware Timothy J. Purcell Mike Cammarano Pat Hanrahan Stanford University Craig Donner Henrik Wann Jensen University.
Prepared 5/24/2011 by T. O’Neil for 3460:677, Fall 2011, The University of Akron.
GI 2006, Québec, June 9th 2006 Implementing the Render Cache and the Edge-and-Point Image on Graphics Hardware Edgar Velázquez-Armendáriz Eugene Lee Bruce.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
IMGD 4000: Computer Graphics in Games Emmanuel Agu.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
CS5500 Computer Graphics © Chun-Fa Chang, Spring 2007 CS5500 Computer Graphics April 19, 2007.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Modified from: A Survey of General-Purpose Computation on Graphics Hardware John Owens University of California, Davis David Luebke University of Virginia.
Brook for GPUs Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, Pat Hanrahan Stanford University DARPA Site Visit, UNC.
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.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
GPGPU CS 446: Real-Time Rendering & Game Technology David Luebke University of Virginia.
GPU Tutorial 이윤진 Computer Game 2007 가을 2007 년 11 월 다섯째 주, 12 월 첫째 주.
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.
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 April 4, 2013 © Barry Wilkinson CUDAIntro.ppt.
CSE 690: GPGPU Lecture 11: Projects, Papers Klaus Mueller Computer Science, Stony Brook University.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
Interactive Visualization of Volumetric Data on Consumer PC Hardware: Introduction Daniel Weiskopf Graphics Hardware Trends Faster development than Moore’s.
CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
1 ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Dec 31, 2012 Emergence of GPU systems and clusters for general purpose High Performance Computing.
Slide 1 / 16 On Using Graphics Hardware for Scientific Computing ________________________________________________ Stan Tomov June 23, 2006.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Enhancing GPU for Scientific Computing Some thoughts.
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 &
Database and Stream Mining using GPUs Naga K. Govindaraju UNC Chapel Hill.
Mapping Computational Concepts to GPUs Mark Harris NVIDIA Developer Technology.
Computationally Efficient Histopathological Image Analysis: Use of GPUs for Classification of Stromal Development Olcay Sertel 1,2, Antonio Ruiz 3, Umit.
GPU Computation Strategies & Tricks Ian Buck Stanford University.
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
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.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac GPU  Precision, Power, Programmability –CPU: x60/decade, 6 GFLOPS,
General-Purpose Computation on Graphics Hardware Adapted from: David Luebke (University of Virginia) and NVIDIA.
General-Purpose Computation on Graphics Hardware.
Emergence of GPU systems and clusters for general purpose high performance computing ITCS 4145/5145 April 3, 2012 © Barry Wilkinson.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
GPU Computation Strategies & Tricks Ian Buck NVIDIA.
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.
Havok FX Physics on NVIDIA GPUs. Copyright © NVIDIA Corporation 2004 What is Effects Physics? Physics-based effects on a massive scale 10,000s of objects.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
David Angulo Rubio FAMU CIS GradStudent. Introduction  GPU(Graphics Processing Unit) on video cards has evolved during the last years. They have become.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
Mapping Computational Concepts to GPUs Mark Harris NVIDIA.
Programmable Graphics Hardware CS 446: Real-Time Rendering & Game Technology David Luebke University of Virginia.
The Graphics Pipeline Revisited Real Time Rendering Instructor: David Luebke.
Ray Tracing by GPU Ming Ouhyoung. Outline Introduction Graphics Hardware Streaming Ray Tracing Discussion.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 © Barry Wilkinson GPUIntro.ppt Oct 30, 2014.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
General Purpose computing on Graphics Processing Units
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
第七课 GPU & GPGPU.
Graphics Processing Unit
GP2: General Purpose Computation using Graphics Processors
Graphics Processing Unit
Ray Tracing on Programmable Graphics Hardware
Presentation transcript:

General-Purpose Computation on Graphics Hardware

IntroductionIntroduction David Luebke University of Virginia

Course Introduction The GPU on commodity video cards has evolved into an extremely flexible and powerful processor –Programmability –Precision –Power This course will address how to harness that power for general-purpose computation

Motivation: Computational Power GPUs are fast… –3 GHz Pentium4 theoretical: 6 GFLOPS, 5.96 GB/sec peak –GeForceFX 5900 observed: 20 GFLOPs, 25.3 GB/sec peak GPUs are getting faster, faster –CPUs: annual growth  1.5×  decade growth  60× –GPUs: annual growth > 2.0×  decade growth > 1000 Courtesy Kurt Akeley, Ian Buck & Tim Purcell, GPU Gems (see course notes)

Motivation: Computational Power Courtesy Naga Govindaraju GPU CPU

An Aside: Computational Power Why are GPUs getting faster so fast? –Arithmetic intensity: the specialized nature of GPUs makes it easier to use additional transistors for computation not cache –Economics: multi-billion dollar video game market is a pressure cooker that drives innovation

Motivation: Flexible and precise Modern GPUs are deeply programmable –Programmable pixel, vertex, video engines –Solidifying high-level language support Modern GPUs support high precision –32 bit floating point throughout the pipeline –High enough for many (not all) applications

Motivation: The Potential of GPGPU The power and flexibility of GPUs makes them an attractive platform for general-purpose computation Example applications range from in-game physics simulation to conventional computational science Goal: make the inexpensive power of the GPU available to developers as a sort of computational coprocessor

The Problem: Difficult To Use GPUs designed for and driven by video games –Programming model is unusual & tied to computer graphics –Programming environment is tightly constrained Underlying architectures are: –Inherently parallel –Rapidly evolving (even in basic feature set!) –Largely secret Can’t simply “port” code written for the CPU!

Course goals A detailed introduction to general-purpose computing on graphics hardware We emphasize: –Core computational building blocks –Strategies and tools for programming GPUs –Tips & tricks, perils & pitfalls of GPU programming Several case studies to bring it all together

Why a SIGGRAPH Course? Why SIGGRAPH, instead of (say) Supercomputing? –Many graphics applications stand to benefit from GPGPU “Hot topic” case studies: tone mapping, level sets, fluids Keeping computation on-card! –Many graphics applications strive for visual plausibility rather than rigorous scientific realism Better tolerate GPU limitations in precision, memory Well suited as GPGPU “early adopters” –GPGPU programming still requires expertise of SIGGRAPH audience

Course Prerequisites We assume –Familiarity with interactive graphics and computer graphics hardware –Ideally, some experience programming vertex & pixel shaders Target audience –Researchers interested in GPGPU –Graphics and games developers interested in incorporating these techniques into their applications –Attendees wishing a survey of this exciting new field

Course Topics GPU building blocks Languages and tools Effective GPU programming GPGPU case studies

Course Topics: Details GPU building blocks –Linear algebra –Sorting and searching –Database operations Languages and tools –High-level languages –Debugging tools

Course Topics: Details Effective GPU programming –Efficient data-parallel programming –Data formatting & addressing –GPU computation strategies & tricks Case studies in GPGPU Programming –Physically-based simulation on GPUs –Ray tracing & photon mapping on GPUs –Tone mapping on GPUs –Level sets on GPUs

Speakers In Order of Appearance David Luebke, University of Virginia Mark Harris, NVIDIA Jens Krüger, TU-Munich Tim Purcell, Stanford (NVIDIA) Naga Govindaraju, University of North Carolina Ian Buck, Stanford Cliff Woolley, University of Virginia Aaron Lefohn, University of California Davis

Luebke Harris Krüger Purcell Course Schedule: GPU Building Blocks 8:30Introduction Welcome, overview, the graphics pipeline 9:00Mapping computational concepts to the GPU Streaming, Resources, CPU-GPU analogies, branching 9:20Linear algebra Representations, operations, example algorithms 9:55Sorting & searching (part 1) Bitonic sort, binary search 10:15Break

Purcell Govindaraju Buck Purcell Course Schedule: Languages & Tools 10:30Sorting & searching (part 2) Nearest-neighbor search 10:45Database operations Queries, boolean predicates, aggregation 11:15High-level languages Cg/HLSL/GLslang, Sh, Brook 11:45Debugging tools imdebug, DirectX/OpenGL shader IDEs, ShadeSmith 12:15Lunch break

Woolley Lefohn Buck All Course Schedule: Effective GPU Programming 1:45Efficient data-parallel GPU programming Computational frequency, profiling, load balancing 2:15Data formatting & addressing Memory layout, data structures 2:45GPU Computation Strategies & Tricks Precision, performance, scatter, branching 3:15Q & A Questions for the speakers? 3:30Break

Harris Woolley Lefohn Purcell Course Schedule: GPGPU Case Studies 3:45Physically-based simulation on GPUs Reaction-diffusion, fluids, clouds 4:10Tone mapping on GPUs High-dynamic range images, tone mapping 4:35Level sets on GPUs Streaming level sets, visualization, segmentation 5:00Global illumination on GPUs Ray tracing, photon mapping 5:30Wrap!

GPU Fundamentals: The Graphics Pipeline A simplified graphics pipeline –Note that pipe widths vary –Many caches, FIFOs, and so on not shown GPUCPU Application Transform Rasterizer Shade Video Memory (Textures) Vertices (3D) Xformed, Lit Vertices (2D) Fragments (pre-pixels) Final pixels (Color, Depth) Graphics State Render-to-texture

GPU Fundamentals: The Modern Graphics Pipeline Programmable vertex processor! Programmable pixel processor! GPUCPU Application Vertex Processor Rasterizer Pixel Processor Video Memory (Textures) Vertices (3D) Xformed, Lit Vertices (2D) Fragments (pre-pixels) Final pixels (Color, Depth) Graphics State Render-to-texture Vertex Processor Fragment Processor

GPU Pipeline: Transform Vertex Processor (multiple operate in parallel) –Transform from “world space” to “image space” –Compute per-vertex lighting

GPU Pipeline: Rasterizer Rasterizer –Convert geometric rep. (vertex) to image rep. (fragment) Fragment = image fragment –Pixel + associated data: color, depth, stencil, etc. –Interpolate per-vertex quantities across pixels

GPU Pipeline: Shade Fragment Processors (multiple in parallel) –Compute a color for each pixel –Optionally read colors from textures (images)

Coming Up Next: Mapping computational concepts to the GPU Also coming up: –Core building blocks for GPGPU computing –Memory layout, data structures, and algorithms –Detailed advice on writing high performance GPGPU code –Lots of examples