General-Purpose Computation on Graphics Hardware

Welcome to the GPGPU.org Developer Resources page. Here you will find a wealth of information on the GPGPU programming, including tutorials, utility code, examples, useful links and much more. All of the code here is open source.

GPGPU Programming

The GPGPU programming landscape has rapidly evolved over the past several years, so that now there are several approaches to programming GPUs. Recently, convergence towards standardization has begun. Readers are recommended to browse the available material to make their own decisions on which approach to use.

GPU Computing really took off when CUDA and Stream arrived in late 2006. These are programming interfaces and languages, designed by the GPU vendors in close proximity with the hardware, that constitute a tremendous step towards a usable, suitable, scalable and manageable future-proof programming model. Learn more about AMD Stream. Learn more about NVIDIA CUDA.

The Open Compute Language (OpenCL) is designed to provide a unified API for heterogeneous computing on several kinds of parallel devices, including GPUs, multicore CPUs and the Cell Broadband Engine. Learn more about OpenCL.

High-level languages and programming environments for GPUs, in particular BrookGPU from Stanford University and Sh from the University of Waterloo were precursors to todays solutions like CUDA and OpenCL. Sh has been commercialized by its developers into RapidMind and BrookGPU has served as the basis for AMD’s Stream. Learn more about BrookGPU and Sh.

In the early days, GPGPU programming was a bit hacky. Algorithms had to be cast in terms of graphics APIs such as OpenGL and Direct3D; the underlying hardware was not fully exposed or documented; and the programming was sometimes unproductive. Despite all this, a lot of ground-breaking research has been accomplished that helped pave the way to what GPU computing is now. Despite their legacy status, these older tutorials and sample applications still have some value. Learn more about legacy GPGPU.

Conference Tutorials

Over the years, quite a few GPGPU tutorial sessions have been hosted at various conferences.