CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU)

Post on 02-Feb-2016

30 views 0 download

Tags:

description

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 - PowerPoint PPT Presentation

Transcript of CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU)

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

Graphics HardwareGraphics Hardware(GPGPU)(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

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

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

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

• 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

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

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

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

Course Schedule

• GPU-specific implementations of standard operations:

– sorting and searching

– linear algebra

– signal processing

– differential equations

– numerical solvers

Course Schedule

• Numerical and scientific computations:

– non-linear optimization

– FFT

– differential equations for rigid body simulation

– statistics

– fluid dynamics

– molecular dynamics

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

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

Course Schedule

• Computer graphics and visualization:

– raytracing

– photon-mapping

– shadows

– radiosity

– amorphous phenomena

– volume rendering

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