AMD OpenCL parallel computing demo from Siggraph Asia 2008
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)
- 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:
- Introduction to OpenCL by Jason Yang, AMD
- Stream Computing for Graphics by Christopher Oat, AMD
- Throughput Computing: Hardware Basics by Justin Hensley, AMD