Introducing C++ Accelerated Massive Parallelism (C++ AMP)
A few months ago, Herb Sutter told about a keynote he was to delivered today in the AMD Fusion Developer Summit (happening these days). He said by then:
“Parallelism is not just in full bloom, but increasingly in full variety. We know that getting full computational performance out of most machines—nearly all desktops and laptops, most game consoles, and the newest smartphones—already means harnessing local parallel hardware, mainly in the form of multicore CPU processing. (…) More and more, however, getting that full performance can also mean using gradually ever-more-heterogeneous processing, from local GPGPU and Accelerated Processing Unit (APU) flavors to “often-on” remote parallel computing power in the form of elastic compute clouds. (…)”
In that sense, S. Somasegar, Senior Vice President of the Developer Division made this morning the following announcement:
“I’m excited to announce that we are introducing a new technology that helps C++ developers use the GPU for parallel programming. Today at the AMD Fusion Developer Summit, we announced C++ Accelerated Massive Parallelism (C++ AMP). (…) By building on the Windows DirectX platform, our implementation of C++ AMP allows you to target hardware from all the major hardware vendors. (…)”
C++ AMP, as Soma tells in his post, is actually an open specification. Microsoft will deliver an implementation based on its Windows DirectX platform (DirectCompute, as Daniel Moth specifies in a later post a few minutes ago).
Daniel added that C++ AMP will lower the barrier to entry for heterogeneous hardware programmability, bringing performance to the mainstream. Developers will get an STL-like library as part of the existing concurrency namespace (whose Parallel Patterns Library –PPL and its Concurrency Runtime –ConcRT are also being enhanced in the next version of Visual C++ –check references at the end of this post for further details) in a way that developers won’t need to learn a different syntax, nor using a different compiler.
Update (6/16/2011): “Heterogeneous Parallelism at Microsoft”, the keynote where Herb Sutter and Daniel Moth introduced this technology with code and graphic demos is available for on-demand watching.
Update (6/17/2011): Daniel Moth’s session “Blazing-fast Code Using GPUs and More, with C++ AMP” is available as well! Beside, Dana Groff tells what’s new in Visual Studio 11 for PPL and ConcRT.
Pedal to the metal, let’s go native at full speed!
- S. Somasegar’s announcement: http://blogs.msdn.com/b/somasegar/archive/2011/06/15/targeting-heterogeneity-with-c-amp-and-ppl.aspx
- Daniel Moth’s blog post: http://www.danielmoth.com/Blog/C-Accelerated-Massive-Parallelism.aspx
- Herb Sutter’s keynote at the AMD Fusion Developer Summit: https://channel9.msdn.com/Events/AMD-Fusion-Developer-Summit/AMD-Fusion-Developer-Summit-11/KEYNOTE
- Daniel Moth: Blazing-fast Code Using GPUs and More, with C++ AMP (session presented at AMD Fusion Developer Summit): https://channel9.msdn.com/Events/AMD-Fusion-Developer-Summit/AMD-Fusion-Developer-Summit-11/DanielMothAMP
- Announcing the PPL, Agents and ConcRT efforts for Visual Studio 11, by Dana Groff: http://blogs.msdn.com/b/nativeconcurrency/archive/2011/06/16/announcing-the-ppl-agents-and-concrt-efforts-for-v-next.aspx
- AMD Fusion Developer Summit Webcasts: http://developer.amd.com/afds/pages/webcast.aspx