I can't find anything named Microsoft AMP. However, it sounds like you're talking about DirectCompute, the compute API for DirectX.
AMD will support DirectCompute because its the native API on Windows, the same way they continue to support Direct3D. This doesn't mean that Direct3D is more viable of an API than OpenGL, but it means its popular on one platform.
Relevant link to the C++AMP announcement (http://channel9.msdn.com/posts/AFDS-Keynote-Herb-Sutter-Hete...). It's basically OpenMP for GPGPU, magic C++ macros that convert your code to DirectCompute shaders (although in theory OpenCL or Cuda could be targets as well). Like OpenMP, I'm skeptical whether or not it will actually lead to a any kind of speed up of random C++ code, even random C++ code that is data parallel, but its an interesting idea and like OMP is very low cost for developers to try out on their existing code base.
C++ AMP is a framework for acceleration of general purpose C++ code with heterogeneous processors. It's not the same as DirectCompute which in this case is more like the assembly language of GPU programming on Windows as Microsoft is building C++ AMP on top of it.
No, DirectCompute is more like the C++ of GPU programming. The syntax style of the compute shaders are the same C++-ish that Cg and HLSL uses.
In comparison, OpenCL's compute shaders use the same C-ish that OpenCL does for GLSL.
OpenCL and DirectCompute are pretty high level considering they're running on what equates to massively parallel DSPs.
Oh, and OpenCL already runs on heterogeneous setups. There are OpenCL compilers for three different GPU archs, x86, PPC, Cell SPEs, a few DSPs, and ARM. An OpenCL program can use all of them at the same time if available.
I meant that it was the assembly language because DirectCompute is the target of the C++ AMP compiler, similar to how some people call JavaScript the assembly language of the web. It's the lowest level language that those developing in that environment can target.
If you can find a url about AMP, I'd like to see it. Google seems to think it doesn't exist.
It almost sounds like AMD's project that turns Java bytecode into GPU-able code (although it is limited to what you can do normally, such as no allocation of memory/no object construction, only certain type primitives, and it should be largely branchless/loopless).