Microsoft publishes Accelerated Massive Parallelism spec

Software giant Microsoft has published a specification for C++ AMP (Accelerated Massive Parallelism) which is its new system for heterogeneous parallel processing in C++.

Microsoft was telling the world about C++ AMP in June last year and says that it wants to make the AMP specification open.

AMP is something that Microsoft has hatched out with AMD and Nvidia. It allows AMP programs to use both the main CPU and Direct3D video cards and the plan is to make the specification permit OpenGL/OpenCL too.

According to Microsoft, the plan is to encourage other compiler developers to implement the technology.

Looking at the spec it seems that Microsoft will not assert claims on any patents that Microsoft may hold that are relevant to AMP unless the implementing party is daft enough to sue Microsoft.

AMP programmes are written in C++ and send blocks of code to be dealt with in parallel either on a CPU or the video card. These blocks are controled so that they can be kept inline with the rest of the C++ program.

So far the only thing that has been seen like it is OpenCL, but this is not linked to any specific video card manufacturer. OpenCL is based on C rather than C++, with the GPU functions written in a restricted form of C99 rather than a restricted C++.