Welcome, Unregistered.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Reply
Old 06-Feb-2012, 07:09   #1
pcchen
Moderator
 
Join Date: Feb 2002
Location: Taiwan
Posts: 2,358
Default Microsoft published C++ AMP spec

Microsoft published an open spec of C++ AMP (Accelerated Massive Parallelism), which is implemented in Visual Studio 11.

Spec here (PDF)
pcchen is offline   Reply With Quote
Old 06-Feb-2012, 13:07   #2
Dade
Member
 
Join Date: Dec 2009
Posts: 172
Default

Quote:
Originally Posted by pcchen View Post
Microsoft published an open spec of C++ AMP (Accelerated Massive Parallelism), which is implemented in Visual Studio 11.
They really seems to promote an open standard:

Copyright License. Microsoft grants you a license under its copyrights in the specification to (a) make copies of this specification to develop your implementation of this specification, and (b) distribute portions of this specification in your implementation or your documentation of your implementation.

(even if the following part where the license talks about patents isn't totally clear to me).

Writing an implementation over OpenCL looks like a straightforward process.
Dade is offline   Reply With Quote
Old 06-Feb-2012, 14:07   #3
pcchen
Moderator
 
Join Date: Feb 2002
Location: Taiwan
Posts: 2,358
Default

Quote:
Originally Posted by Dade View Post
(even if the following part where the license talks about patents isn't totally clear to me).
IANAL but it seems to me that they are saying is: we promise not to sue you for any patent infringement w.r.t. this spec if you don't sue us

It's really important for this kind of things to be open if it really wants to be successful.
pcchen is offline   Reply With Quote
Old 06-Feb-2012, 14:33   #4
AlexV
Heteroscedasticitate
 
Join Date: Mar 2005
Posts: 2,362
Default

That's how I read it too, under the same restriction. Pretty sure a lawyer would find a way to twist that but

On a separate note, I like AMP quite a bit more than I like OpenCL, in spite of it being currently more limited. It remains to be seen if any partie other than Microsoft will pick up the compiler writing mantle though. Some g++amp.exe would be useful...
__________________
Donald Knuth: Science is what we understand well enough to explain to a computer. Art is everything else we do.
AlexV is online now   Reply With Quote
Old 06-Feb-2012, 20:34   #5
Dade
Member
 
Join Date: Dec 2009
Posts: 172
Default

Quote:
Originally Posted by AlexV View Post
On a separate note, I like AMP quite a bit more than I like OpenCL, in spite of it being currently more limited.
AMP looks promising however it doesn't seem exactly a direct OpenCL competitor. It is a bit like comparing Java Vs. Assembler. Ok, may be there isn't such a huge difference but OpenCL exposes a lot of hardware details.

P.S. anyone remembers the old days when C++ compilers were just front-end for translating the code in C ? Having something similar from C++ AMP to OpenCL would be quite useful.
Dade is offline   Reply With Quote
Old 06-Feb-2012, 20:54   #6
AlexV
Heteroscedasticitate
 
Join Date: Mar 2005
Posts: 2,362
Default

Quote:
Originally Posted by Dade View Post
AMP looks promising however it doesn't seem exactly a direct OpenCL competitor. It is a bit like comparing Java Vs. Assembler. Ok, may be there isn't such a huge difference but OpenCL exposes a lot of hardware details.

P.S. anyone remembers the old days when C++ compilers were just front-end for translating the code in C ? Having something similar from C++ AMP to OpenCL would be quite useful.
That ties into the limited aspect. That being said, I'm not that keen on the way OpenCL ends up exposing things (oh look, we're really close to the metal really...only that we're not really that close once one looks at is), and to be honest I have no confidence in its evolutionary path being anything worthwhile.

The whole Khronos boardism means a neverending tug of war between IHVs (just look at how nicely OpenGL did as a comitee driven effort). Apple had the potential to make things right by being the ultimate shepard / vetoer, but they seem utterly incapable to do so. What AMP has going for itself is primarly the same thing that made DX succeed: whilst it is consultation driven, MS ends up calling what happens when and how. Once AMP actually ends up firmly matching the featureset exposed by DirectCompute, I'd be surprised if CL earns anything worthwhile on GPUs. For CPUs it's likely that you may end up getting better performance than whatever WARP gives you, however, to be honest, I'd rather use something like ISPC there, if one doesn't want to get to intrinsincs.

On the other hand, this is a question of taste on my part (IMHO most of the programming language / tool warfare falls into this category, ultimately work can be done with almost anything unless it's hugely bad) so I do apologize if I end up sounding like other programming tool nazis
__________________
Donald Knuth: Science is what we understand well enough to explain to a computer. Art is everything else we do.
AlexV is online now   Reply With Quote
Old 06-Feb-2012, 15:47   #7
Davros
Darlek ******
 
Join Date: Jun 2004
Posts: 9,651
Default

Is that like the patent protection you can buy from microsoft

"Now you have the option to acquire Xandros Desktop offerings together with Microsoft patent assurance. This assurance enables you to use Xandros Desktop software with confidence. This program is available for $50. Learn more by reading Microsoft's covenant."

http://www.microsoft.com/about/legal...t/xandros.aspx
__________________
Guardian of the Most holy Two Terabytes of Gaming Goodness™
Davros is offline   Reply With Quote
Old 07-Feb-2012, 01:23   #8
rpg.314
Senior Member
 
Join Date: Jul 2008
Location: /
Posts: 4,079
Send a message via Skype™ to rpg.314
Default

Promise not to sue != License. If MS really wanted to push AMP as an open standard, then they would have given a license grant predicated on non-litigation.
__________________
The views presented here are my own and not my employer's.
Quote:
Originally Posted by Alexko View Post
So in a nutshell, model [BLANK] will have [BLANK], up to [BLANK], and even [BLANK] for a power consumption of just [BLANK]. Impressive.
rpg.314 is online now   Reply With Quote
Old 07-Feb-2012, 08:05   #9
pcchen
Moderator
 
Join Date: Feb 2002
Location: Taiwan
Posts: 2,358
Default

Quote:
Originally Posted by rpg.314 View Post
Promise not to sue != License. If MS really wanted to push AMP as an open standard, then they would have given a license grant predicated on non-litigation.
Well, Microsoft already promised not to sue anyone for patent infringement over any compliant implementation of this spec. I think that's good enough if all you want is to make an AMP implementation. Providing free license is probably better but I understand that it's probably too much for Microsoft to do (after all, a free license means one may be allowed to use the patent freely for other projects if he has made an implementation of AMP, and that's certainly not what Microsoft meant to do.)
pcchen is offline   Reply With Quote
Old 12-Feb-2012, 20:44   #10
Nick
Senior Member
 
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
Default

I don't see how there's a future for this. Every time the hardware becomes less limited there will be a new version, further fragmenting the software ecosystem. That will only stop when eventually we're be back where we started: C++.
Nick is offline   Reply With Quote
Old 12-Feb-2012, 21:20   #11
Dade
Member
 
Join Date: Dec 2009
Posts: 172
Default

Quote:
Originally Posted by Nick View Post
I don't see how there's a future for this. Every time the hardware becomes less limited there will be a new version, further fragmenting the software ecosystem. That will only stop when eventually we're be back where we started: C++.
In my opinion, C++/C should have native vector types (i.e float4, etc.) and other few new features that we have seen to pop up in OpenCL C/CUDA C/C++ AMP, etc.

It would be useful also for developing classic CPU software (i.e. SSE, AVX, etc.)

So, may be we will go back to square one but I hope with some new feature gained on the way.
Dade is offline   Reply With Quote
Old 13-Feb-2012, 02:35   #12
Nick
Senior Member
 
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
Default

Quote:
Originally Posted by Dade View Post
In my opinion, C++/C should have native vector types (i.e float4, etc.)...
Why? Creating your own vector types is trivial.
Quote:
...and other few new features that we have seen to pop up in OpenCL C/CUDA C/C++ AMP, etc.
Such as?
Quote:
It would be useful also for developing classic CPU software (i.e. SSE, AVX, etc.)
Any auto-vectorizing compiler worth its salt already uses vector instructions. Visual Studio 11 will finally join the ranks too.
Quote:
So, may be we will go back to square one but I hope with some new feature gained on the way.
Aside from adding the 'restrict' keyword to the C++ standard, and perhaps adding a 'vectorize' pragma, I can't think of much that would be useful in the long run.
Nick is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 07:13.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.