Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


Microsoft Opens C++ Extension To Other Compilers

While debate surrounding the rapidly crystallizing vision of Windows 8 is dominating many news headlines, Microsoft is pushing ahead with developments behind the GUI by opening up its C++ AMP specification for potential use by non-Microsoft compilers such as those supplied by Embarcadero, Intel, and others.

The company is making this move in order to position Visual Studio developers closer to the benefits of using GPUs (graphics processing units) from vendors such as Nvidia in their applications. While some, if not most, GPU power will be directed towards graphics-intensive tasks, the unit will also logically be available to load balance wider CPU related tasks if, for example, complex data analysis computations need to be executed.

The C++ AMP specification, or the C++ Accelerated Massive Parallelism to afford it its full moniker, first surfaced around the time of the developer preview of Visual Studio 11 in September 2011. C++ AMP accelerates the execution of C++ code by taking advantage of the data-parallel hardware that is commonly present as a GPU on a discrete graphics card. (Read more about C++AMP here.)

According to Microsoft's Visual C++ Libraries Reference website, "The C++ AMP programming model includes support for multidimensional arrays, indexing, memory transfer, and tiling. It also includes a mathematical function library. C++ AMP language extensions and compiler restrictions enable you to control how data is moved from the CPU to the GPU and back."

Essentially, this technology exists to give developers (and "mainstream" C++ developers at that) an opportunity to write programs capable of running in parallel suited to deployment across heterogeneous computing environments.

"What we see is more and more people are looking to take advantage of the GPU in their applications," said Tony Goodhew, a Microsoft product manager for Visual Studio. This more open approach from Microsoft is hoped to open up parallel power to developers not specifically skilled in concurrency.

Microsoft engineers have reportedly toiled diligently to minimize the number of changes to the official version of C++ in order to make this new openness of choice possible.

While retaining as much of the canonical structure as possible, Microsoft has been forced to engineer C++ AMP with a number of restrictions needed for code to successfully run across multiple processors. But while restrictions exist on some levels, extensions and augmentations will also now be offered such as the option to support multidimensional array types and asynchronous memory transfer.

Microsoft C++ AMP was discussed in depth in Dr. Dobb's at its launch late last year.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.