cse 690 general-purpose computation on graphics hardware (gpgpu)
Post on 02-Jan-2016
21 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
top related