My dissertation work did a similar with with OpenMP-like syntax and semantics built on top of the Cell's native API: http://people.cs.vt.edu/~scschnei/cellgen/ (And, actually, my compiler generated code for a library that was a thin wrapper on top of the Cell's native API itself - it's so low-level that it was easier to have another layer of abstraction between my generated code and it.)
A compiler would be better off compiling directly to either native code (if running on a CPU) or something like PTX (for NVidia GPUs).
We've been playing this game every since Fortran was first invented. Yeah, you probably could get better performance if you wrote your application one level of abstraction lower, but once you get a sufficiently sophisticated compiler, the performance benefit is marginal compared to the programming time and effort. Further, libraries tend not to be written directly in assembly, and will often rely on other libraries. I could see implementing something similar to what MS showed purely as a C++ library.
Well, thank goodness for that. There was me thinking it might be a temporary project to grab some developer mindshare to be dumped in a couple of years.
They've put weight on Silverlight as well and now they're ditching it for HTML5.
Just when I thought Microsoft had finally seen
the virtue of contributing to an existing standard
Of course, not when they can force their own standard down on people's throats and get away with it, like they did with Direct 3D, which eventually won (on Windows anyway), but if you are talking about HTML5, remember that they tried their luck with Silverlight first.
Ultimately, Microsoft could be better of if they manage to impose their new proprietary wannabe de-facto standard. It doesn't care if it wrecks the whole industry in the process, they care about money.
C++ AMP is based on the DirectCompute APIs in DirectX 11.
My $.02 -- maybe the target audience for C++ AMP is different than the target audience for OpenCL. Before it was released, I really liked the idea of OpenCL but in practice it doesn't really deliver very well (performance-wise) compared to alternatives like nVidia CUDA, AMD APP (formerly Stream), and DirectCompute.
IMO, developers would rather write against a non-standard API (a la C++ AMP) that ran at a consistently good performance level across all of their targets (nVidia/AMD/Intel GPUs, multicore CPUs, etc.).
I think people like CUDA because Nvidia puts a serious effort into their development tools and Marketing. That's not meaningless.