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.
![]() |
|
|
#1 |
|
Moderator
Join Date: Feb 2002
Location: Taiwan
Posts: 2,348
|
Microsoft published an open spec of C++ AMP (Accelerated Massive Parallelism), which is implemented in Visual Studio 11.
Spec here (PDF) |
|
|
|
|
|
#2 | |
|
Member
Join Date: Dec 2009
Posts: 171
|
Quote:
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. |
|
|
|
|
|
|
#3 | |
|
Moderator
Join Date: Feb 2002
Location: Taiwan
Posts: 2,348
|
Quote:
It's really important for this kind of things to be open if it really wants to be successful. |
|
|
|
|
|
|
#4 |
|
Heteroscedasticitate
Join Date: Mar 2005
Posts: 2,354
|
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. |
|
|
|
|
|
#5 |
|
Darlek ******
Join Date: Jun 2004
Posts: 9,497
|
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™ |
|
|
|
|
|
#6 | |
|
Member
Join Date: Dec 2009
Posts: 171
|
Quote:
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. |
|
|
|
|
|
|
#7 | |
|
Heteroscedasticitate
Join Date: Mar 2005
Posts: 2,354
|
Quote:
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. |
|
|
|
|
|
|
#8 |
|
Senior Member
|
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.
|
|
|
|
|
|
#9 |
|
Moderator
Join Date: Feb 2002
Location: Taiwan
Posts: 2,348
|
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.)
|
|
|
|
|
|
#10 |
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
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++.
|
|
|
|
|
|
#11 | |
|
Member
Join Date: Dec 2009
Posts: 171
|
Quote:
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. |
|
|
|
|
|
|
#12 | ||||
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
Quote:
Quote:
Quote:
Quote:
|
||||
|
|
|
|
|
#13 | ||
|
Senior Member
|
Then it should be a part of C++ stdlib.
Quote:
Quote:
There are a lot of things that C++ could use. If you look outside your own niche, you'll find them useful. |
||
|
|
|
|
|
#14 |
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
|
|
|
|
|
|
#15 |
|
Member
Join Date: Dec 2009
Posts: 171
|
Yup, in all my tests, I have always seen the compilers to produce horrible and inefficient code compared to hand written SSE code.
The only GPU compiler that had to really do some sort of autovectorization was one for AMD GPU with code for VLIW ... and one of the reasons they dropped VLIW in HD7xxx was because writing good compilers was really hard, expansive, time consuming, etc. |
|
|
|
|
|
#16 |
|
Senior Member
|
|
|
|
|
|
|
#17 |
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
That's all going to change with AVX2. It has vector equivalents of every scalar instruction, so it can trivially parallelize any loop with independent iterations, identical to how GPUs do it.
|
|
|
|
|
|
#18 | |
|
Senior Member
|
Quote:
|
|
|
|
|
|
|
#19 | |
|
Member
Join Date: Dec 2009
Posts: 171
|
Quote:
Side note: it is also noticeable how hard is to read the code written with intrinsics compared to something written with native float4 (for instance with OpenCL C). From my point of view, this alone, could be seen as a good reason to introduce native vector data types. |
|
|
|
|
|
|
#20 | |
|
Member
Join Date: Feb 2010
Posts: 170
|
Quote:
AVX2 is a step forward, and will help vectorizing compilers, but it still isn't as good a compile target as either GPUs or Larrabee. |
|
|
|
|
|
|
#21 | |
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
Quote:
|
|
|
|
|
|
|
#22 | |
|
Member
Join Date: Jan 2010
Posts: 375
|
Quote:
Of course HLSL is primitive in comparison to C++, and it's easier to have small pattern-databases (peep-hole auto-vectorization would that be called I guess). Making decisions about optimality isn't that streightforward in C++. I don't think the AV itself is really the problem. |
|
|
|
|
|
|
#23 | ||
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
Quote:
Quote:
Or were you thinking of something else that AVX2 is lacking? |
||
|
|
|
|
|
#24 | |
|
Member
Join Date: Feb 2010
Posts: 170
|
Quote:
|
|
|
|
|
|
|
#25 | ||
|
Senior Member
|
Quote:
Quote:
|
||
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|