Microsoft introduced this week technology for C++ developers to leverage GPUs (graphics processing units) for parallel programming.
The company's C++ AMP (C++ Accelerated Massive Parallelism) technology is expected to become part of the next Visual C++ compiler and integrated with Visual Studio, said S. Somasegar, senior president of the Microsoft Developer Division, in a blog post. It also will leverage Microsoft DirectX technology for multimedia capabilities in Windows. "By building on the Windows DirectX platform, our implementation of C++ AMP allows you to target hardware from all the major hardware vendors," Somasegar said. C++ AMP will become an open specification, Somasegar said.
[ Microsoft's Technical Computing initiative from 2010 spotlighted parallel programming. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. | Follow Paul Krill on Twitter. ]
Using GPUs in parallel computing follows other trends, such as multicore programming, Somasegar said. "In the last few years, we have been seeing an additional trend of heterogeneous hardware where, for example, developers take advantage of the GPU for computational purposes for their data parallel algorithms," Somasegar said. "This has been successful in narrow verticals using niche programming models. Microsoft wants to bring to the mainstream the ability to write code that takes advantage of heterogeneous hardware like GPUs. So like we've done with multicore before, we are bringing this ability to the next version of Visual Studio."
Microsoft also announced enhancements to the next versions of its Parallel Patterns Library and C++ Concurrency runtime. "You can find easy-to-use C++ templates and runtime support to express algorithms for your domain expertise that scale on any provided hardware with PPL, Agent, and the C++ Concurrency Runtime. With C++ AMP and PPL, we aim to make the next version of Visual Studio the most productive environment for targeting heterogeneous hardware available," Somasegar said.
Somasegar previously has cited parallel programming as an important priority to Microsoft. He also has cited the company's Axum language as a mechanism for building parallel applications. Axum is noted as being in an incubation stage on a Microsoft DevLabs website, with Microsoft at this time not making any commitment to ship it.