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

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

  • Upload
    snana

  • View
    30

  • Download
    0

Embed Size (px)

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

Citation preview

Page 1: 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

Page 2: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU)
Page 3: CSE 690 General-Purpose Computation on Graphics Hardware (GPGPU)

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)

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)

Motivation:Computational Power

Courtesy Naga Govindaraju

GPU

CPU

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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