The Power of Uber-Parallel Processing - the new WGL_AMD_GPU_association extension

Posted by Nick Haemel on March 03, 2009

GPUs are highly parallel processors, generating results for millions of pixels, possibly hundreds of times per second. But at the same time, a GPU is a single processor that can only work on one task at a time. A single application, or even multiple applications, can rarely utilize the resources of multi-GPU systems efficiently.

OpenGL 3Some modern GPU features help to address this issue. MultiView allows each OpenGL application on Windows XP to run locally on the GPU the monitor is attached to. CrossFire accelerates applications by tasking each GPU with a portion of rendering workload, a whole frame for instance. These options make a considerable impact by distributing work among GPUs. AMD is currently releasing an extension which allows applications to further enhance and optimize the use of multiple GPUs.

WGL_AMD_GPU_association allows applications to make the decision of what work to task to each GPU. A workstation application can use this extension to determine what types of GPUs are in a system and pick which contexts to allocate on each GPU. This allows a workstation application, especially those that do off-screen rendering, to process multiple images or datasets simultaneously and combine the final image for display. The decision of how to divide up the work is left to the application.

GPU Association is currently available in Catalyst 9.1. The extension specification can be found in the OpenGL extension registry. Soon to follow will be a Linux specific version. With this new tool, applications can fully exploit all of the graphics processing power of the next generation multi-GPU systems.

Note: Catalyst 9.1 does support the GPU association, but the extension name in this release is WGL_AMDX_GPU_association.

Tags: 3D, GPGPU


Parallelizing the work has other benefits apart from throughput. We can use cheap and cheerful machines to do the work rather than a very expensive uber-machine. Who cares if the individual cheap machines break down? We just replace the ones that fail and forge on. The chances of corn production stopping completely because of hardware failure are basically infinitesimally small. What are the chances of hundreds, perhaps thousands of independent machines all failing at the same time? Effectively zero.
Page 1 of 1 pages

Add your comment

Note: All comments are moderated for spambots so there will be a posting delay.
Your email address will not be published.

Anti Spam: Please enter the word you see in the image below: