Microsoft Demos C++ AMP Heterogeneous Computing at AMD's Fusion Developer Summit

Microsoft Demos C++ AMP Heterogeneous Computing at AMD's Fusion Developer Summit

The second day of the AMD Fusion Developer Summit began with a keynote from Microsoft’s Herb Sutter, Principal Architect, Native Languages and resident C++ guru. The gist of Herb’s talk centered around heterogeneous computing and the changes coming with future versions of Visual Studio and C++.

One of the main highlights of the talk was a demo of a C++ AMP application that seamlessly took advantage of all of the compute resources within a few of the various demo systems, from workstations to netbooks.  The application seamlessly switched from using CPU, integrated GPU, and discrete GPU resources, showcasing the performance capabilities of each. Heterogeneous computing capabilities in Visual Studio and C++ will be rolling out over the course of this year and next, but details of the release dates are sketchy at the moment. The demo, however, was rather interesting to see live. In this physics simulation, bodies are tracked in relation to each other and as additional bodies are added, workload increases with a ramp-up to 100s of GFLops in compute performance.



In addition to demonstrating the benefits C++ AMP in general, Herb also disclosed that the C++ AMP is going to open specification such that other compilers can target C++ AMP optimizations.

0
+ -

"This topic is out of my league. but the part about "100s of GFLops in compute performance." sounds phenomenal."

-Optimus

0
+ -

Would be nice to know what kind of compiler are they using. But since its MS, I guess we'll never know.

0
+ -

"Ok, scratch my first comment. I saw the video and read the article properly . I think that this is great and a huge leap forward in both harnessing the computation power by the GPU and a more efficient level of C++ programming with the AMP moniker. Its amazing that they were able to use two discrete grahics cards that were in Crosfire and accelerate the aplication intensely"

"A couple of question though, since this will work with any GPU, does that mean that developers won't have to pay an extra license fee with for example, with NVidia and Cuda programing in mind, when they advertise a program as to be able to accelerate or enhace the eperience with a discrete graphic card.

"Will C++ AMP only work with Windows 8, I'm guessing so. "

-Optimus

0
+ -

C++? Not even C++.Net? Why aren't they pushing C#, .Net, and DirectCompute for this? MS not pushing their highest lock-in APIs. That's... weird.

0
+ -

@3vi1 I was wondering the same thing. IT is very odd of MS not to be pushing their most up to date languages.

0
+ -

I like that Microsoft has jumped on the GPU bandwagon. It will be interesting to see what sorts of changes this is going to bring about over the next few years and how software is going to take advantage of gpu's. As for MS not using their most up to date languages, dunno, maybe it was easier to implement on C++ initially? Im sure support will change in the future, as this is all relatively new.

0
+ -

If you need to question why they are using C++ then I fear this topic may be over your heads. Go back to your webapps and business tools.

0
+ -

Actually a lot of us that are here, are here to learn from and help each other gain a better understanding of the computing world.

So if you can explain or shed light on a subject, please do.

Don't hold back and give as much detail as you can.

0
+ -

3vi1 et al,

I'll put it to you plain and simple: c++ is faster. If you are trying to get better performance, (I assuming you are if you are trying to use c++ Amp or Opencl) c++ is faster. If you don't care about performance, develop in one of the other languages.

According to Sutter from Microsoft, they chose c++ because they wanted to "use the strong typing [and] to use the strong, powerful abstractions while still being close to the metal,"

In addition, Microsoft want's to make the specification open, and using (for example) visual basic or c#, you lose the portability. You can run c++ programs on almost any processor or platform, but you can't do the same with VB, C#, .NET, etc. - You need an interpreter of some sort.

Sources:

http://www.theregister.co.uk/2011/06/15/microsoft_c_plus_plus_amp/

I do robotics development in c++

0
+ -

Interesting. Good to see that Microsoft at least is getting along with AMD, if not with Intel.

0
+ -

Finally got a chance to watch the video this morning and that is really some amazing stuff.

It almost seems like were are going to be seeing more hybrid technology with multi-core processors in combination with multi-core GPU's on the same chip. We need more power :P

0
+ -

I bet folding@home and boinc will put this to some good use. =D

0
+ -

3vi1 wrote: "C++? Not even C++.Net? Why aren't they pushing C#, .Net, and DirectCompute for this?"

.Net and high performance are pretty much mutually exclusive. Yeah, I know we hear a lot about how there's a JIT compiler and JIT-compiled code can take advantage of the specific processor you're running on, but the reality is that you don't use .Net languages when you need high performance. I have some numeric C# code I'm optimizing, and I found that a straightforward C++ translation of the C# code outperforms the latter by a factor of 4.3.. and to get it down that low I had to replace all uses of .Net multidimensional arrays with custom multidimensional array classes of my own. (Originally the C++ code beat the C# code by a factor of 4.9.)

Login or Register to Comment
Post a Comment
Username:   Password: