{"id":2923,"date":"2011-06-15T10:30:00","date_gmt":"2011-06-15T10:30:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2011\/06\/15\/introducing-c-accelerated-massive-parallelism-c-amp\/"},"modified":"2019-02-18T18:44:53","modified_gmt":"2019-02-18T18:44:53","slug":"introducing-c-accelerated-massive-parallelism-c-amp","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/introducing-c-accelerated-massive-parallelism-c-amp\/","title":{"rendered":"Introducing C++ Accelerated Massive Parallelism (C++ AMP)"},"content":{"rendered":"<p>A few months ago, Herb Sutter told about a keynote he was to delivered today&nbsp;in the <em>AMD Fusion Developer Summit<\/em> (happening these days). He said by then:<\/p>\n<blockquote>\n<p><em>&ldquo;Parallelism is not just in full bloom, but increasingly in full variety. We know that getting full computational performance out of most machines&mdash;nearly all desktops and laptops, most game consoles, and the newest smartphones&mdash;already means harnessing local parallel hardware, mainly in the form of multicore CPU processing. (&hellip;) 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 &ldquo;often-on&rdquo; remote parallel computing power in the form of elastic compute clouds. (&hellip;)&rdquo;<\/em><\/p>\n<\/blockquote>\n<p>In that sense, <strong>S. Somasegar<\/strong>, Senior Vice President of the Developer Division <strong>made this morning <a href=\"http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2011\/06\/15\/targeting-heterogeneity-with-c-amp-and-ppl.aspx\" target=\"_blank\">the following announcement<\/a><\/strong>:<\/p>\n<blockquote>\n<p><em>&ldquo;I&rsquo;m excited to announce that <strong>we are introducing a new technology that helps C++ developers use the GPU for parallel programming<\/strong>. Today at the AMD Fusion Developer Summit, we announced <strong>C++ Accelerated Massive Parallelism (C++ AMP)<\/strong>. (&hellip;) By building on the Windows DirectX platform, our implementation of C++ AMP allows you to target hardware from all the major hardware vendors. (&hellip;)&rdquo;<\/em><\/p>\n<\/blockquote>\n<p><strong>C++ AMP<\/strong>, as Soma tells in his post, is actually an <strong>open specification<\/strong>. Microsoft will deliver an implementation based on its <em>Windows DirectX<\/em> platform (<a href=\"http:\/\/www.danielmoth.com\/Blog\/DirectCompute.aspx\" target=\"_blank\"><em>DirectCompute<\/em><\/a>, as Daniel Moth specifies in <a href=\"http:\/\/www.danielmoth.com\/Blog\/C-Accelerated-Massive-Parallelism.aspx\" target=\"_blank\">a later post<\/a> a few minutes ago).<\/p>\n<p>Daniel added that <strong>C++ AMP will lower the barrier to entry for heterogeneous hardware programmability<\/strong>, bringing performance to the mainstream. Developers will get an <strong>STL-like library <\/strong>as part of the existing concurrency namespace (whose Parallel Patterns Library &ndash;PPL and its Concurrency Runtime &ndash;ConcRT are also being enhanced in the next version of Visual C++ &ndash;check references at the end of this post for further details) in a way that developers won&rsquo;t need to learn a different syntax, nor using a different compiler.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Update (6\/16\/2011): &ldquo;<\/strong><a href=\"https:\/\/channel9.msdn.com\/posts\/AFDS-Keynote-Herb-Sutter-Heterogeneous-Computing-and-C-AMP\" target=\"_blank\"><strong>Heterogeneous Parallelism at Microsoft<\/strong><\/a><strong>&rdquo;<\/strong>, the keynote where Herb Sutter and Daniel Moth&nbsp;introduced this technology with code and graphic demos is available&nbsp;for on-demand watching.<\/p>\n<p><strong>Update (6\/17\/2011)<\/strong>: Daniel Moth&#8217;s session &#8220;<strong><a href=\"https:\/\/channel9.msdn.com\/posts\/Daniel-Moth-Blazing-fast-code-using-GPUs-and-more-with-C-AMP\" target=\"_blank\">Blazing-fast Code Using GPUs and More, with C++ AMP<\/a><\/strong>&#8221; is available as well! Beside, Dana Groff tells <a href=\"http:\/\/blogs.msdn.com\/b\/nativeconcurrency\/archive\/2011\/06\/16\/announcing-the-ppl-agents-and-concrt-efforts-for-v-next.aspx\" target=\"_blank\">what&#8217;s new in Visual Studio&nbsp;11 for PPL and ConcRT<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>Pedal to the metal, let&rsquo;s go native at full speed!<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline\">References<\/span>:<\/p>\n<ol>\n<li>S. Somasegar&rsquo;s announcement: <a href=\"http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2011\/06\/15\/targeting-heterogeneity-with-c-amp-and-ppl.aspx\">http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2011\/06\/15\/targeting-heterogeneity-with-c-amp-and-ppl.aspx<\/a><\/li>\n<li>Daniel Moth&rsquo;s blog post: <a href=\"http:\/\/www.danielmoth.com\/Blog\/C-Accelerated-Massive-Parallelism.aspx\">http:\/\/www.danielmoth.com\/Blog\/C-Accelerated-Massive-Parallelism.aspx<\/a><\/li>\n<li>Herb Sutter&#8217;s keynote at the AMD Fusion Developer Summit: <a href=\"https:\/\/channel9.msdn.com\/Events\/AMD-Fusion-Developer-Summit\/AMD-Fusion-Developer-Summit-11\/KEYNOTE\">https:\/\/channel9.msdn.com\/Events\/AMD-Fusion-Developer-Summit\/AMD-Fusion-Developer-Summit-11\/KEYNOTE<\/a><\/li>\n<li>Daniel Moth: Blazing-fast Code Using GPUs and More, with C++ AMP (session presented at AMD Fusion Developer Summit): <a href=\"https:\/\/channel9.msdn.com\/Events\/AMD-Fusion-Developer-Summit\/AMD-Fusion-Developer-Summit-11\/DanielMothAMP\">https:\/\/channel9.msdn.com\/Events\/AMD-Fusion-Developer-Summit\/AMD-Fusion-Developer-Summit-11\/DanielMothAMP<\/a><\/li>\n<li>Announcing the PPL, Agents and ConcRT efforts for Visual Studio 11, by Dana Groff: <a href=\"http:\/\/blogs.msdn.com\/b\/nativeconcurrency\/archive\/2011\/06\/16\/announcing-the-ppl-agents-and-concrt-efforts-for-v-next.aspx\">http:\/\/blogs.msdn.com\/b\/nativeconcurrency\/archive\/2011\/06\/16\/announcing-the-ppl-agents-and-concrt-efforts-for-v-next.aspx<\/a><\/li>\n<li>AMD Fusion Developer Summit Webcasts: <a href=\"http:\/\/developer.amd.com\/afds\/pages\/webcast.aspx\">http:\/\/developer.amd.com\/afds\/pages\/webcast.aspx<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>A few months ago, Herb Sutter told about a keynote he was to delivered today&nbsp;in the AMD Fusion Developer Summit (happening these days). He said by then: &ldquo;Parallelism is not just in full bloom, but increasingly in full variety. We know that getting full computational performance out of most machines&mdash;nearly all desktops and laptops, most [&hellip;]<\/p>\n","protected":false},"author":293,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2923","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus"],"acf":[],"blog_post_summary":"<p>A few months ago, Herb Sutter told about a keynote he was to delivered today&nbsp;in the AMD Fusion Developer Summit (happening these days). He said by then: &ldquo;Parallelism is not just in full bloom, but increasingly in full variety. We know that getting full computational performance out of most machines&mdash;nearly all desktops and laptops, most [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/2923","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/293"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=2923"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/2923\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=2923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=2923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=2923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}