210 likes | 313 Views
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
E N D
CSE 690General-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