SUPERCOMPUTING 2006 Tutorial

Welcome to the course notes and supplementary materials for the full-day SUPERCOMPUTING 2006 GPGPU Tutorial!

The tutorial will be held at SUPERCOMPUTING 2006 on Sunday, November 12, 2006.

Please also plan to attend the workshop “General-Purpose GPU Computing: Practice and Experience” that will also be held at SUPERCOMPUTING 2006 on Monday, November 13, 2006

Abstract

The graphics processor (GPU) on today’s commodity video cards has evolved into an extremely powerful and flexible processor. Modern graphics architectures provide tremendous memory bandwidth and computational horsepower, with fully programmable shading units that support vector operations up to full IEEE floating point precision. High level languages have emerged for graphics hardware, making this computational power accessible. GPGPU stands for “General-Purpose Computation on GPUs”. Researchers have found that exploiting the GPU can accelerate some non-graphics problems by over an order of magnitude over the CPU.

However, significant barriers still exist for the developer who wishes to use the inexpensive power of commodity graphics hardware. These chips are designed for and driven by video game development; the programming model is unusual, resources are tightly constrained, and the underlying architectures are largely secret. The GPGPU developer must be an expert in computer graphics and its computational idioms to make effective use of the hardware, and still pitfalls abound.

This course provides detailed coverage of general-purpose computation on graphics hardware. We emphasize core computational building blocks, ranging from linear algebra to database queries, and review the tools, perils, and tricks of the trade in GPU programming. We present analysis of GPU performance characteristics, and use this analysis to provide insight into how to build efficient GPGPU algorithms. Finally we present a set of case studies on general-purpose applications of graphics hardware. For the first time this year, we will present case studies based on industry GPGPU products.

The course presenters are GPGPU experts from academia and industry. They have written book chapters, published papers, and presented tutorials on the topic at SIGGRAPH, Graphics Hardware, IEEE Visualization, Game Developers Conference, and elsewhere

Course Organizers

Course Speakers

Course Outline

  • Introduction (PDF)
  • GPGPU Building Blocks
    • Data-Parallel Algorithms (PDF)
    • Memory Models (PDF)
    • Data Structures (PDF)
    • Sorting and Data Queries (PDF)
    • Mathematical Primitives (PDF)
  • Languages and Programming Environments
    • High-level languages (PDF)
    • Direct GPU Computing: ATI CTM (PDF)
    • Direct GPU Computing: NVIDIA CUDA (PDF)
  • High-Performance GPGPU
    • GPGPU Strategies and Tricks (PDF)
    • Performance Analysis and Architecture Insights (PDF)
  • GPGPU In Practice
    • Havok FX: Game Physics Simulation on GPUs (PDF)
    • PeakStream Platform (PDF)
    • GPGPU Cluster Computing (PDF)