AMD OpenCL parallel computing demo from Siggraph Asia 2008

Posted by Tony DeYoung on February 03, 2009

The first public demonstration of OpenCL functionality was given by AMD at Siggraph Asia 2008. OpenCL is the new vendor-independent standard designed to extract high performance parallel computing out of GPUs, DSPs and multicore CPUs. Basically the idea is that you can write your core computational code in OpenCL and voila! - your code scales to whatever processors are available. OpenCL will greatly improve speed and responsiveness for a wide spectrum of applications from entertainment to scientific and 3D visualization.

The FirePro / FireStream teams created a screen capture of this particle & fluid simulation demo showing OpenCL functionality - embedded below. As you can see when you run it, initially the demo only uses one core of a Dragon-based system (quad-core Phenom II).  As the additional cores are enabled the simulation compute time is cut in half!

Note: Set the embedded video to display at hi-quality to see more detail - it takes a while to load - but it is worth it (once you start the video, select HQ from the bottom right up-arrow of the video)

More details

  • CPU-optimized runtime based on the publicly available OpenCL specification from the Khronos Group designed to optimally run compute kernels on multi-core systems with linear scaling
  • Powdertoy is a combined particle & fluid simulator written by Stanislaw Skowronek
    - Particles can change state (Snow melting into water)
    - Particles affect the state of the fluid (Heat increases pressure)
    - Fluid state affects the particles (Particle movement)
  • Computationally dense portions of the original C code ported to compute kernels in just a couple of hours
  • Yellow bar on right represents the time spent in all the compute kernels
    - grey material used to write "powder toy" at the beginning of the video is "metal" which later melts
    - AMD logo is drawn in a material that "clones" what ever touches it first, which in the video is a flammable gas (the yellow particles)
    - after igniting the gas, the air near the logo rapidly heats up and expands, causing the outflow of fire particles.
  • The last part of the video shows the affect of enabling multiple cores. The video capture software prevents the forth core from being used by the runtime

Interested in more technical info about OpenCL and Stream Computing? Check out these papers:


You really should have mentioned that: OpenCL was initially conceived by Apple Inc. (which holds trademark rights), and refined into an initial proposal in collaboration with technical teams at AMD, Intel and Nvidia. Apple submitted this initial proposal to the Khronos Group. On June 16th 2008 the Khronos Compute Working Group was formed with representatives from CPU, GPU, embedded-processor, and software companies. This group worked for the next 5 months to finish the technical details of the specification for OpenCL 1.0 by Nov 18 2008. This technical specification was reviewed by the Khronos members and approved for public release on December 8, 2008. Apple's forthcoming Mac OS X Snow Leopard will make extensive use of Open CL: OpenCL (Open Computing Language), makes it possible for developers to efficiently tap the vast gigaflops of computing power currently locked up in the graphics processing unit (GPU). With GPUs approaching processing speeds of a trillion operations per second, they’re capable of considerably more than just drawing pictures. OpenCL takes that power and redirects it for general-purpose computing.
This is absolutely awesome.
The Powder Toy is available free for various platforms including Windows from Stanislaw Skowronek website: I think the ones available to the public on his site may be single-core only but they're just as fun to play with.
this demo is cool and I am looking for more to see abilities and the preformance of OpenCL.
I am sorry but it does not demonstrate anything.. It's just a pile of crap with coder-colors. And fluid dynamics? guess what, it is already possible on GPU. It is utterelly stupid to run OpenCL on a CPU, CPUs have a more extended instruction set and good cache and OpenCL makes no fucking sense on a CPU. It would have been cool to see this running on a graphic card, because at least the restrictive programming paradigm of OpenCL was targetted at these. And else, was I the only one to laugh at this? "to optimally run compute kernels on multi-core systems with linear scaling" smile Sorry, but it's not a challenge. of course it runs linearly. if it doesn't it means you have a bug...
Actually this demo is a big deal - because it is using OpenCL rather than writing multi-processor core-savvy code. As a developer, you just write to OpenCL and it then does the magic of scaling this to multiple CPUs, GPUs, DSPs or whatever is available. Sure a really good coder can write custom code write now that takes advantage of multiple cores on a CPU and using something like Stream or CUDA they could write to a GPU using custom proprietary API code. But three things: 1) must not be that many great coders out there because you don't see a lot of multi-core apps. 2) More relevantly, how would a "great coder" be able to write code that adjusts to whatever processors are available, on any device or platform? 3) OpenCL is an open standard, so you are not writing proprietary one-off code. OpenCL is like OpenGL. You write to OpenGL - you don't worry about the specific hardware. Same with OpenCL. You write to OpenCL and the OpenCL driver handles the scaling to the processing devices available (GPU, CPU, DSP, Larabee, etc). Also OpenCL is not limited to just GPUs - it has applications to things like the new multi-core ARM handheld processor or DSPs, or Intel's Larabee.
Is there any information available on a possible release date of the OpenCL driver used for this demo, for the public or to 'registered' developers ? I'm very much willing to use OpenCL for GPU _and_ CPU !
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: