“GPGPU: General-Purpose Computation on Graphics Hardware” by Harris, Luebke, Buck, Govindaraju, Krüger, et al. …

  • ©Mark J. Harris, David Luebke, Ian Buck, Naga Govindaraju, Jens Krüger, Aaron E. Lefohn, Timothy J. Purcell, and Cliff Woolley

Conference:


Entry Number: 32

Title:

    GPGPU: General-Purpose Computation on Graphics Hardware

Course Organizer(s):



Presenter(s):



Abstract:


    Prerequisites
    Attendees are expected to have experience with a modern graphics API such as OpenGL or Direct 3D, including basic experience in programming vertex and pixel shaders.

    Intended Audience
    Researchers interested in investigating general-purpose computation on graphics hardware and graphics and games developers interested in incorporating these techniques into their applications.

    Description
    The graphics processor (GPU) on today’s commodity video cards has evolved into an extremely powerful and flexible system. The latest graphics architectures provide tremendous memory bandwidth and computational horsepower, with fully programmable vertex and pixel processing 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. Architecturally, GPUs are highly parallel streaming processors optimized for vector operations, with both MIMD (vertex) and SIMD (pixel) pipelines. Not surprisingly, these processors are capable of general-purpose computation beyond the graphics applications for which they were designed. Researchers have found that exploiting the GPU can accelerate some problems by more than 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, whether for in-game simulation of physics or for conventional computational science. These chips are designed for and driven by video game development; the programming model is unusual, the programming environment is tightly constrained, and the underlying architectures are largely secret. The GPU 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 a detailed introduction to general-purpose computation on graphics hardware (GPGPU). It emphasizes core computational building blocks, ranging from linear algebra to database queries, and reviews the tools, perils, and tricks of the trade in GPU programming. It also presents some interesting and important case studies on general-purpose applications of graphics hardware.

    The course presenters are experts on general-purpose GPU computation from academia and industry, and have presented papers and tutorials on the topic at the annual SIGGRAPH conference, Graphics Hardware, Game Developers Conference, and elsewhere.


Type: