Introducing C++ Accelerated Massive Parallelism (C++ AMP)

Introducing C++ Accelerated Massive Parallelism (C++ AMP)

  • Comments 8

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!



  1. S. Somasegar’s announcement:
  2. Daniel Moth’s blog post:
  3. Herb Sutter's keynote at the AMD Fusion Developer Summit:
  4. Daniel Moth: Blazing-fast Code Using GPUs and More, with C++ AMP (session presented at AMD Fusion Developer Summit):
  5. Announcing the PPL, Agents and ConcRT efforts for Visual Studio 11, by Dana Groff:
  6. AMD Fusion Developer Summit Webcasts:
Leave a Comment
  • Please add 3 and 3 and type the answer here:
  • Post
  • Can't wait to write some code on VC++ Next

  • Congratulations to the team! This will make native code stronger than ever.

  • Can you just support OpenCL like everyone else? Apple has done it. AMD, NVidia, even Intel has support for it. Even ARM is about to release support for it. If OpenCL does have everything you want I am pretty sure they would give you a place on their board to help define future versions.

  • Show us some sample codes, will ya?

  • Not buying vNext until you fix problems in vCurrent (debugger, IDE). Enough is enough.

  • @Tom: Without getting into the whole "Microsoft wants to invent their own of everything" discussions, one point worth making is that this is a nice shiny C++ API, whereas OpenCL is firmly C and C only. Both have their strengths, but as a C++ developer, I think there's a place for a C++/STL-style GPGPU API. Whether or not that should be AMP, or whether it should be developed by Microsoft or someone else, I don't know.

    But I'm all for a C++-based counterpart to OpenCL.

  • Tom: why don't you ask IBM\apple\etc to support COM in AIX\Mac OS?

  • Forth programming is much besster tahn C++ even with lowlevel assemble routines

    You do not need to spend all the time tringing to sort out classes objects, etc..

    This resulys in a massive saving in time, effort and money being paid to rich programmers

Page 1 of 1 (8 items)