C++ AMP supports various data types for usage in the restrict(amp) functions that you schedule on the accelerator. One of those types is double . There are caveats and extra information that you need to know with regards to double precision and this post...

Now that the VS 11 Developer Preview is available for download , if you want to work with C++ AMP there are some things you should know and to save yourself some pain and frustration trying to figure them out, I have listed them below. VS 11 Express If...

Hi, I’m Steve Deitz, a developer on the C++ AMP team, and in this post, I’ll review the atomic operations available in C++ AMP, mention some important caveats, and show a simple example.
Atomic operations are the only safe and correct way...

Today I am going to present a way to measure the performance of C++ AMP algorithms. Specifically I am going to show you how to accurately measure elapsed time, and what you need to know while placing the timer in your code. In the examples below I am...

If you’ve not read previous posts in this series about auto-vectorization, you may want to begin at the beginning .
This post explains how to measure the benefits of auto-vectorization – how much it speeds up your code. (To find out...

If you have tried to run C++ AMP program in Visual Studio 2012 on Windows 8 in debug configuration, you might have noticed that after a successful execution there are DXGI warnings reported in the output window. Long story short – there is nothing...

Hi my name is Paul Maybee and I am the architect on the Parallel and GPU debugger team, working closely with the C++ AMP team.
We covered previously how to debug C++ AMP code locally, so please read our post on “ Start GPU Debugging in Visual...

Hi, I am Jim Hogg, a Program Manager in the Visual C++ compiler team. This short post explains “What is vectorization?”. It provides background for an upcoming sequence of posts on a new feature within the Visual Studio 2012 C++ compiler,...

Many of you have been wondering about availability of additional C++ AMP libraries. As part of the shipping product you already have C++ AMP which itself is a library, and also the C++ AMP Math library . But you have been asking about additional libraries...

C++ AMP Open Specification V1.2 is available now under the Microsoft Community Promise – which essentially allows any C++ compiler implementer to add C++ AMP to their compiler. As before, Microsoft supports and encourages anyone to implement the...

This post assumes and requires that you have read the introductory post to this series which also includes a table of content . With that out of the way let’s look at restrictions around function declarators and calls.
Function declarators with...

Hello, my name is Pooja Nagpal. I am an engineer on the C++ AMP team. In this post, I would like to talk about how data is passed into a parallel_for_each for use on the accelerator. The simplest method of passing in data is by using lambdas in the parallel_for_each...

The Windows Timeout Detection and Recovery (TDR) mechanism prevents processes from hogging the GPU and rendering the system display unresponsive or denying other processes a fair share of the GPU. I encourage you to read our post Handling TDRs in C++...

In my previous blog post, I gave an introduction to the native concurrency runtime in Visual Studio 2010. For a general picture of the native concurrency runtime, and high level roles of each of its components please refer to this post. Today, I will...

As part of the C99 standard, C has defined the keyword restrict . That feature is not what this blog post is about. restrict(cpu) In the Visual C++ compiler shipping with Visual Studio 11 (the one after VS2010), we are making the restrict modifier apply...

First, let me re-introduce myself… I’m Don McCrady, the development lead for C++ AMP, and formerly the development lead for the concurrency runtime and PPL, so I already have a few blog posts here from my former life. In this little post I will describe...

We’ve posted an update to our sample pack at http://code.msdn.com/concrtextras for the release candidate of Visual Studio 2010. There’s a lot of good stuff from the team here including demos, concurrent data structures and additional parallel algorithms...

In my previous post I talked about the agent class. Now I will introduce the Agents Library’s message blocks , how to use them, and the fundamentals of what they do. I will cover some basics that apply to all of the message blocks, introduce the messaging...

As a user of Visual Studio, you might have had a chance to use the concurrent data structures introduced in the Beta 2 release – concurrent_vector<T> and concurrent_queue<T> . A detailed discussion about the design, usage, and methods of concurrent_queue...

In this blog post I would like to discuss the interaction of C++ AMP with Windows Timeout Detection and Recovery (TDR) , a mechanism used to maintain GPU responsiveness. What is a TDR The GPU has been mainly used for display making user experience its...

This post assumes and requires that you have read the introductory post to this series which also includes a table of content . With that out of the way let’s look at restrictions around identifier expressions.
In an amp-restricted function,...

Howdy ho! My name is Simon Wybranski, I am a developer on the C++ AMP team!
In this blog post I am going to present a high-resolution timer for measuring the performance of C++ AMP algorithms . There is nothing specific in it to C++ AMP, so it can...

I am super-excited to have been part of multiple announcements that Microsoft made at the AMD Fusion 11 conference held in Bellevue WA this week.
First, Herb Sutter announced C++ AMP yesterday morning and AMD Fusion11, which will be an extension of...