BUILD apps that use C++ AMP

Tue, September 13, 2011, 08:28 PM under Events | GPGPU | ParallelComputing

If you are a developer on the Microsoft platform, you are hopefully attending (live or virtually) the sessions of the BUILD conference, aka //build/ in Anaheim, CA. The conference sold out not long after it opened registration, and it achieved that without sharing *any* session details nor a meaningful agenda up until after the keynote today – impressive!

I am speaking at BUILD and hope you'll catch my talk at 9am on Friday (the last day of the conference) at Marriott Elite 2 Ballroom. Session details follow.

802 - Taming GPU compute with C++ AMP

Developers today inject parallelism into their compute-intensive applications in order to take advantage of multi-core CPU hardware. Beyond CPUs, however, compute accelerators such as general-purpose GPUs can provide orders of magnitude speed-ups for data parallel algorithms. How can you as a C++ developer fully utilize this heterogeneous hardware from your Visual Studio environment?  How can you benefit from this tremendous performance boost in your Visual C++ solutions without sacrificing developer productivity?  The answers will be presented in this session about C++ Accelerated Massive Parallelism.

I'll be covering a lot of the material I've been recently blogging about on my blog that you are reading, which I have also indexed over on our team blog under the title: "C++ AMP in a nutshell".

Wednesday, 14 September 2011 07:11:44 (Pacific Daylight Time, UTC-07:00)
Helllo Daniel,

The topic is really great I will wait for the link for the presentation if someone record it.
Considering the topic, I have this question for you how to boost parallel performance of my code by using it C++ AMP.

The example is as follow:

- I defined one class cTemplate with local variables and data structures and method Calc() working with the data of its class. There are no inheritances in the class instances.
- I declared dynamically an N instances of class cTemplate with the command new().
- I want to run all of the N instances of the method Calc() from cTemplate classes in parallel.

What is the fastest way to do this with C++ AMP and to be run over GPU’s? I supposed that I will use the latest hardware model of embedded GPU card on motherboard using RAM memory shared with microprocessor(s).

Cheers
Petar A.
Petar Adamovski
Saturday, 17 September 2011 00:44:24 (Pacific Daylight Time, UTC-07:00)
Petar, I posted the link to the presentation which is now online. For generic C++ AMP examples please use the msdn forums.
http://www.danielmoth.com/Blog/Links-To-C-AMP-And-Other-Content.aspx
Saturday, 17 September 2011 12:25:18 (Pacific Daylight Time, UTC-07:00)
Is there a managed (C# or F#) story for AMP ?
I recall the Microsoft Research Accelerator project (C#) worked on a similar principle for GPGPU - mapping a mulitidimensional array as data and HLSL as logic to the GPU and asyncronously awaiting the resultset. I've also seen Brahma.NET (LINQ to GPU).
Do you recomend moving away from F# and back to C++ for numerical computing ?
Sunday, 18 September 2011 18:13:49 (Pacific Daylight Time, UTC-07:00)
Josh, please use the forums for generic questions that are not about the specific post. To answer your question, our recommendation is that you use C++ AMP for GPGPU scenarios, and you can interop to C++ AMP from managed languages. We will post an example of how easy that is on the pfxteam blog and I will link to it.
Comments are closed.