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.
- Welcome and Course Context
- Introduction to Data-Parallel Computing
OpenGL Compute Shaders
Helpful: general knowledge of OpenGL, which is available in Ed Angel and Dave Shreiner’s course: Introduction to Modern Open GL. Previous knowledge of data-parallel computing is not necessary.
Attendees who want to take advantage of GPU performance enhancements for applications that combine data-parallel computing with OpenGL rendering.
Oregon State University