Microsoft adapts C++ for GPUs and the cloud

C++ Accelerated Massive Parallelism will allow developers to code for heterogeneous parallel compute architectures

Microsoft has unveiled a new programming model designed to overhaul the way C++ developers code for massively parallel compute architectures, covering multi-core CPUs, GPUs and cloud-based infrastructure.

Announced at AMD's Fusion Developer Summit, C++ Accelerated Massive Parallelism (C++ AMP) requires only minimal changes to existing C++ code, but produces applications that can run 10 to 100 times as fast, according to Microsoft.

The new programming model will be supported in the next version of the Visual Studio developer suite, Microsoft said. The company also pledged to make it an open standard that could be used on any parallel compute architecture, not just Windows systems.

"We will make open specifications available that any compiler can implement, so developers can use C++ AMP for any hardware target and any operating system," said Herb Sutter, principal architect for native languages at Microsoft.

Sutter explained that it had been obvious for some time that a new programming approach was needed for heterogeneous parallelism, as computers gained multiple CPU cores and more recently GPUs, such as in AMD's Fusion APUs.

However, Microsoft said that it saw both of these as just aspects of a single overall trend that also includes cloud computing, in which there are typically massive numbers of very loosely coupled compute cores.

The problem was finding a way to support these disparate architectures while still keeping it mainstream "so that it can be programmed not just by a privileged priesthood", said Sutter.

Microsoft said that C++ is the obvious choice if you want high performance, and lots of developers are already familiar with the language.

With C++ AMP, there is very little need for developers to change their algorithms, according to Sutter.

"But now you can write C++ code and have it run at scale on any DirectCompute device," he said.

Sutter added that the next version of Visual Studio will offer developers the same debugging experience for programming GPUs as they currently have for CPU code.

More details on the next Visual Studio are expected to be disclosed at Microsoft's Build conference in September.