Combining GPU Data-Parallel Computing With OpenGL

Tuesday, 23 July 10:45 AM - 12:15 PM
Session Chair:

Combining GPU Data-Parallel Computing With OpenGL

Data-parallel computing is a programming paradigm in which the same analysis code is applied to different data elements. Many applications in visual computing fall into this category, such as particle systems, image processing, chain models, cloth models, flow analysis, and structural modeling. And, because of the nature of graphics architectures, GPUs are the natural place to perform such operations quickly.

If you are an OpenGL programmer, you have two options:

• OpenCL, an industry-wide standard created by the Khronos Group, the same body that governs OpenGL, has been available for several years.

• OpenGL compute shaders became available in the summer of 2012 in the OpenGL 4.3 release.

The presence of these two multi-vendor solutions allows application developers considerable flexibility to examine their needs and choose the solution that most closely matches. These two solutions are especially important because each can use OpenGL buffers for their data storage. This means that the data never leave the GPU. They are local for both the computing and the rendering, increasing the speed of the application.

This course examines both solutions, shows how each can be used to solve data-parallel computing problems, and explains how each interfaces with OpenGL’s rendering.

COURSE SCHEDULE
10:45 am
- Welcome and Course Context
- Introduction to Data-Parallel Computing

10:50 am
OpenGL Compute Shaders

11:15 am
OpenCL

Mike Bailey
Oregon State University