Up until now, GPGPU has been a research technology for early adopters – a new, promising experimental capability for scientists, engineers, financial professionals, and others running compute-intensive applications. Two elements have kept GPGPU largely in the ivory tower: first, the available APIs were proprietary and second, the GPU has been treated as an independent application accelerator instead of as part of a balanced heterogeneous architecture. OpenCL is a game-changing development in both respects, and AMD is taking an important step on that journey today.
In the past, proprietary programming models like CUDA limited target platforms to those from a single vendor. This may have been fine for students experimenting with a new approach, but mainstream ISVs and other large-scale developers need the flexibility inherent in industry standards. With a standard, cross-platform API, developers can deliver solutions on multiple vendors’ hardware while streamlining their development processes and timelines. This is what they’re waiting for – we hear it every day.
Of course no application runs entirely on the GPU. Beyond the obvious need for CPUs to drive execution, most mainstream applications are heterogeneous in nature. They have some functions that accelerate well on multicore CPUs, and others that are perfectly suited for a GPU’s data parallel architecture. A good development platform needs to take that into account – this is the difference between GPGPU as a niche accelerator and GPGPU as a new baseline feature, ready for tomorrow’s systems and applications.
Today, AMD is delivering the first beta release of an OpenCL implementation for the CPU. Managed by the independent Khronos Group, OpenCL addresses the need for a cross-platform, industry standard approach to development for heterogeneous architectures. This can enable more developers to take advantage of GPGPU acceleration in their applications, but what is even more compelling is the opportunity to build applications that leverage all of the system’s compute resources – CPUs and GPUs – to provide a superior user experience. As the only company that designs and delivers both high-performance GPUs and x86 CPUs to the market, AMD is uniquely qualified to help application developers drive full resource utilization forward without feeling the need to force-fit workloads onto one technology or the other.
With the new OpenCL implementation for the CPU, application developers can begin realizing the promise of heterogeneous computing. A video of a 4P Six-Core AMD OpteronTM processor-based system (24 total cores) running an OpenCL-based, fluid/particle simulation can be seen here; for a developer-focused look at how OpenCL forms the basis of an evolving parallel programming ecosystem, see my colleague Margaret Lewis’ blog, Making the Universe Parallel.
Patricia Harrell is Director of Stream Computing at AMD.
Her postings are her own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.