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.
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.
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.
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.
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.
Is this tech news? Things that matter?
Maybe I became too demanding now that I got old... (cranky?)
Well yeah, I was expecting it to make toast too. ;)
Jumpstart the tartan drive.
It makes for a better demo, I guess, but that'd be my first question too.
My second question would be whether it's the application which decides where it runs, or the OS -- it seems like now we'll not only need multicore schedulers, but GPU-aware schedulers also, but it's still something I'd like the OS to have a say in. For instance, "We need the GPU for graphics now, so you get routed to the CPU instead."
I suspect my second question is more naive than my first.
Don't thank God, thank a doctor!
In response to your comment, Microsoft just announced the release of the Microsoft Pony(tm) Acquisition Suite. "Pony(tm) is designed to provide developers with a solution oriented roadmap for their every need and desire, as quickly as possible; this is the fulfillment of their every dream," announced Steve Ballmer. Critics, however, denounce Pony(tm) as a ripoff of Eliza, with the phrase "We will provide that within 6 months." inserted liberally in the responses.
Does having a witty signature really indicate normality?
Is this tech news? Things that matter?
Maybe I became too demanding now that I got old... (cranky?)
Matter less for old people: they are supposed to already have established themselves (so they do have time to whinge in /. "How's this new?")
For the younger generation, this matters more: they will need to know when, next year, they'll submit their resume to a job ad asking for "3 years+ experience in MS Visual AMP++".
Questions raise, answers kill. Raise questions to stay alive.
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 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).
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
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
Get your shiny new lamps here. New lamps for old!
Help stamp out iliturcy.