Microsoft Demos C++ AMP At AMD Developers Summit
MojoKid writes "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 physics demo seamlessly switched from using CPU, integrated GPU, and discrete GPU resources, showcasing the performance capabilities of each. As additional bodies are added, workload increases with a ramp-up to over 600 of GFLops in compute performance."
yeah, that's all I wanted to know.
Now every tiny application will strangle the system, making games impossible to run!
Oh, like Grand Central Dispatch from Apple?
No, not really like that at all.
Did you even read the wikipedia article you linked to (or the summary for that matter)? A cursory glance shows they're two very different technologies.
"What kind of music do pirates listen to?" -Paul Maud'dib
"Yeeeaaarrrrr n' Bee!!" -Stilgar, Leader of Sietch Tabr
Nope. Not remotely similar. Thanks for playing though.
In this context, AMP doesn't stand for amplifier, Adenosine monophosphate or Ampere, but for "Accelerated Massive Parallelism". Seems like a microsoftism for the more traditional term of "Massive Parallel Processing"
Questions raise, answers kill. Raise questions to stay alive.
I can't work out whether you:
Don't know what GCD is and can't understand the wikipedia article you linked
Don't know what AMP is and can't understand TFS/TFA
Both
Why not? Care to elaborate? We are talking about a shared memory form of parallelism that automatically assesses system resources and allocated threads to appropriate cores, right?
Visit Jonesblog and say hello.
Scientific programmers, game and multimedia devs, crypto hackers. Uh oh.
Its been a long time but i know Grand central is a clone of a feature in windows. I cant remember if it is IO Completion Ports (coolest feature in windows) or something else. Whatever it is, windows gots it
A while ago their STL allocators were non-standard, I guess now their new will be non-standard too.
Maybe you meant OpenCL? http://en.wikipedia.org/wiki/OpenCL
The most relevant difference is that it automatically uses different types of compute resources for the same task, depending on what's available. Core Image can do some of that, but it's limited to graphics workloads.
So it's Grand Central Dispatch + Core Image + a bit.
'Sensible' is a curse word.
Shouldn't it just use what ever it needs depending on the operation? This is still segregated?
This is key innovation. It looks like an important new step we've needed for a long time. It looks like they have done well with it.
Of course it should be inspected for traps. From these folks there are always traps. But this particular time I think this is important enough that we look closely at it to see if there isn't something useful we can safely extract, while being mindful for the traps.
I've been here a long time. I've posted nearly 5,000 comments here over 8 years. Never once before have I said this about a Microsoft technology: This deserves a look.
Help stamp out iliturcy.
Why not? Care to elaborate? We are talking about a shared memory form of parallelism that automatically assesses system resources and allocated threads to appropriate cores, right?
GCD is simply an implementation of the thread pool pattern. AMP takes parallel tasks and can seamlessly switch through utilising different computing resources to complete them rather than having to specify those resources and write resource-specific code for them. So no, it isn't like GCD.
Is this tech news? Things that matter?
Maybe I became too demanding now that I got old... (cranky?)
They are complementary technologies. The best article was the original Snow Leopard review at Ars Technica, which explains the two technologies. Typing from a phone, so can't provide you with the URL for the moment.
Jumpstart the tartan drive.
But you admit that there might be something interesting in it. That something is worth investigation.
Help stamp out iliturcy.
Can't speak for others, but in my case it's
Don't know what AMP is and can't understand TFS/TFA
Neither the summary nor the article seem to explain what AMP is.
For the benefit of everyone else who is trying to figure out, here is a link: Introducing C++ Accelerated Massive Parallelism (C++ AMP) To quote from that page:
So, from a cursory look, this seems to be similar in purpose to OpenCL.
Please correct me if I got my facts wrong.
This is an awesome development - Microsoft adding support for GPU computing in their mainstream tools and C++.
Today, CUDA C++ already provides a full C++ implementation on NVIDIA's GPUs:
http://developer.nvidia.com/cuda-downloads
And the Thrust template library provides a set of data structures and functions for GPUs (similar in spirit to STL):
http://code.google.com/p/thrust/
- biased NVIDIA employee
I've coded C++ for years... and somehow the parallel code looks even *MORE* cryptic than a regular C++ program.
I can see this pushing new hardware. More developers start writing with C++AMP, because it lowers the bar of entry for writing code that makes use of the GPU, and before we know it every little application will have some C++AMP. But, a lot of older computers which don't have DirectX 11 graphic cards have to emulate the DirectX DirectCompute API on the CPU, which is noticably glacial. People see an application run blazingly fast on one computer, see it slow on theirs and ask why it's so slow on theirs. Either they find out that they need a new GPU, or figure that they're computers getting old and they need to buy a new one (which would just happen to have a decent GPU in it).
I can type faster than vs.2011 can follow. Makes you wonder just how much faster everything SHOULD be when MS can't even do that right !! Don't get me started on xaml !! I've typed stuff in there and it still hasn't finished !!
The people who know me are swayed directly by how much they respect my knowledge in a given field. The regulars here know me and either respect or disrespect my opinions based on their experience. We've been at this like I said for over eight years and my record is pretty good. The undecided are welcome to subscribe and read every post I've ever made in context these past eight years and make up their own minds. Frankly in the last eight years I've said a few things here I regret.
I've said quite a few things here. Some of them were prophetic and a few didn't come true yet and may never. Some few were completely wrong. I'm doing better than some.
I have a bias. It's an anti-Microsoft bias. I don't like them and I never will. It's well documented in nearly five thousand posts on this blog that you can research if you're a subscriber. If you want to know why, read Groklaw's Comes archive or the Halloween documents.
So why, if I hate them so much, would I point you toward their stuff? It's because despite my obvious, declared, and well documented historical bias, I think this might be some good stuff. If I would set aside my own bias this much, then if it's possible for me to sway you, you could have a look.
For someone to think that I had converted to the Redmond cult, well it's more plausible my account has been hacked. Frankly that's more likely than I might propose that the devil I've been fighting these eight years might have some interesting candy. But my account's not hacked and this is really me, and the candy looks tasty. Let's be careful about the terms though. The Devil likes to charge a LOT for his candy.
So if you think I'm not crazy, haven't reached my dotage, and aren't a Microsoft tool, have a good neutral look at The Fine Article and see if there isn't something useful in it.
Help stamp out iliturcy.
No, it's really a lot more like OpenCL.
Which is not Mac only BTW... but you can use it in OSX or IOS development.
Also Apple's Accelerate library (C library) takes advantage of OpenCL for BLAS and Linpack and so on...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Not really. Microsoft's Concurrency Framework is similar semantically to libdispatch, but a bit more effort to work with. There was some effort to implement the libdispatch APIs on top of the concurrency framework, but I don't know if this ever went anywhere.
I am TheRaven on Soylent News
The best article was the original Snow Leopard review at Ars Technica, which explains the two technologies
That article had multiple technical inaccuracies on every single page. If it was the best article that you read, then I can only assume that it was the only article that you read.
Typing from a phone, so can't provide you with the URL for the moment
That's probably for the best.
I am TheRaven on Soylent News
That's because of the stupid scheduler in Windows. Try to run it on Linux.
Instead of contributing to open efforts regarding MP, they go on and do their own API. And a few years down the road, where everyone else uses the open API, they will let down their developers by supporting the open API, since it will no longer be viable economically to use their own API any more (like Silverlight/.NET in Windows 8).
Microsoft, when will you learn your lesson? instead of locking us in, why don't you contribute to the efforts of the community to solve the same problem?
'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' -- Terry Pratchett
Dilbert RSS feed
There are already tons of such tools, most of which are not tied to specific architectures, operating systems, or compilers.
Really, why would you go Microsoft on this at all? Clusters and supercomputers usually don't even run Windows at all.
Based on the code example, it simply looks like they extended cl to include (a form of) nvcc syntax.
I was hoping they meant a recompile of exiting code would leverage these resources.
If I want to port all my stuff to CUDA or OpenCL I will do so, and I don't need to lock myself into MS's platform and syntax.
I am very small, utmostly microscopic.
Win 8 desktop? So, where will C++ come into the new OS? Don't get me wrong, I am not a programmer, but I am a tad confused. I know the most rudimentary of C++ coding so maybe I"m just whistling dixie in a tube... but does this mean C++ still relevant on the desktop or will there have to be an old Win 95 layering of code?
I call computer-illiteracy job security
Dammit. I thought microsoft was demoing a C++ Asian Massage Parlour!
Two things you should do to fix that. Number one, you should try to migrate off that Pentium 4 with 256M of RAM. Secondly you should stop buying software from Phantom Software and Bagles on the corner. There is no such thing as Visual Studio 2011, and I doubt there ever will be.
Now, if you want to try a really, really slow IDE that is not a figment of your imagination, try Eclipse
I did RTFM and WTV and caught something most didn't. This is going to be included in the next version of Direct X and looks to be part of Windows 8. Is it any wonder that MS demo'd their latest version of DX on new hardware? Not to me. This doesn't discount the performance level's possible on the new CPU/APU designs both AMD and Intel are pursuing and if MS can include the new DX in Win8-ARM, we should be seeing some damn interesting capabilities in the next couple of years
Mod me up/Mod me down: I wont frown as I've no crown
Ok, they're going to continue improving their managed C++ ... can we stop crying wolf that they're dropping .Net now?
This didn't explain it entirely for you?
"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 physics demo seamlessly switched from using CPU, integrated GPU, and discrete GPU resources, showcasing the performance capabilities of each"
Maybe you're a fucking retard?
Why is the icon for this topic the AMD logo. It's a Microsoft technology announced at an AMD conference. Will it not run on Intel or nVidia chips?
See Herb Sutter's entire ADFS presentation: http://channel9.msdn.com/posts/AFDS-Keynote-Herb-Sutter-Heterogeneous-Computing-and-C-AMP See Daniel Moth's ADFS deep dive session: http://channel9.msdn.com/posts/Daniel-Moth-Blazing-fast-code-using-GPUs-and-more-with-C-AMP
Get your shiny new lamps here. New lamps for old!
Help stamp out iliturcy.