cse 690 general-purpose computation on graphics hardware (gpgpu) courtesy david luebke, university...

21
CSE 690 CSE 690 General-Purpose Computation on General-Purpose Computation on Graphics Hardware Graphics Hardware (GPGPU) (GPGPU) Courtesy David Luebke, University of Virginia

Upload: deborah-reeves

Post on 25-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

CSE 690CSE 690General-Purpose Computation on General-Purpose Computation on

Graphics HardwareGraphics Hardware(GPGPU)(GPGPU)

Courtesy David Luebke, University of Virginia

Page 2: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia
Page 3: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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

Page 4: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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

Page 5: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Motivation:Computational Power

Courtesy Naga Govindaraju

GPU

CPU

Page 6: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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

Page 7: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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

Page 8: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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 co-processor

Page 9: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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!

Page 10: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Goals

• A detailed introduction to general-purpose computing on graphics hardware

• 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

Page 11: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Topics

• GPU building blocks

• Languages and tools

• Effective GPU programming

• GPGPU case studies

Page 12: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Topics: Details

• GPU building blocks– Linear algebra– Sorting and searching– Database operations

• Languages and tools– High-level languages– Debugging tools

Page 13: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

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

Page 14: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Intended Audience

• Anyone interested in accelerated computing– from all academic disciplines

• No graphics background required– will cover all necessary and relevant detail in the course

• What is required…– working knowledge of C/C++– linear algebra– enthusiasm and an open mind

Page 15: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• Understanding the fabric: computer graphics basics

• Overview of GPUs– architecture – features – programming model– some simple applications

• System issues– cache and data management, – languages and compilers– stream processing– GPU-CPU load balancing

Page 16: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• GPU-specific implementations of standard operations:

– sorting and searching

– linear algebra

– signal processing

– differential equations

– numerical solvers

Page 17: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• Numerical and scientific computations:

– non-linear optimization

– FFT

– differential equations for rigid body simulation

– statistics

– fluid dynamics

– molecular dynamics

Page 18: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• Geometric computations:– proximity and collision computations– Voronoi diagrams and distance fields– motion planning and navigation

• Image processing: – automatic and user-guided interactive segmentation– level-set operations– visual feedback (coupling computational and visualization aspects)

• Medical imaging: – computed tomography– functional imaging

Page 19: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• Computer vision and AI:

– real-time tracking

– surface, shape, and scene reconstruction

– reasoning and belief propagation

• Database computations:

– database queries: predicates, booleans, aggregates

– streaming databases

– data mining and visual data mining

Page 20: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• Computer graphics and visualization:

– raytracing

– photon-mapping

– shadows

– radiosity

– amorphous phenomena

– volume rendering

Page 21: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU) Courtesy David Luebke, University of Virginia

Course Schedule

• GPU Clusters

– parallel computing environments for GPUs

– comparison with other high performance specialized hardware (playstation2 cluster from UIUC)

• Project presentations

– at the end of the term