intro - Computer Science Department

Download Report

Transcript intro - Computer Science Department

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
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
GPU
CPU
Courtesy Naga Govindaraju
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