Auto-Vectorizer in Visual Studio 2012 – Rules for Loop Body

  If you haven’t read previous posts in this series about auto-vectorization, you may want to begin at the beginning. In the last post, we explained the rules for C++ loop headers that make your code amenable to auto-vectorization; we might say, make it auto-vectorizer-friendly.  Prompted by an online question from NitPick (our astute reader,…

39

Auto-Vectorizer in Visual Studio 2012 – Rules for Loop Header

If you haven’t read previous posts in this series about auto-vectorization, you may want to begin at the beginning. In this post, we look at those C++ loop patterns that the auto-vectorizer recognizes. We will start by explaining its rules for loop headers (defined below). Throughout this post, we will talk about what the auto-vectorizer…

33

C++ AMP: N-Body Simulation Sample

My name is Bharath, I am an SDET on the C++ AMP team. I worked on the NBody demo and wanted to share this project with you. You may have seen our PM (Daniel Moth) demonstrate at AMD Fusion Developer Summit and at Microsoft Build Conference (for the NBody demo watch – 0:03:00 through 0:08:00)….

29

Concurrency Runtime and Windows 7

Microsoft has recently released a beta for Windows 7, and a look at the official web site (http://www.microsoft.com/windows/windows-7/default.aspx) will show you a pretty impressive list of new features and usability enhancements. I encourage you to go look them over for yourself, but in this article I’m going to focus on a couple of Win7 features…

26

Concurency::parallel_for and Concurrency::parallel_for_each

Marko Radmilac, Senior Developer for Microsoft’s Concurrency Runtime, offers the following discussion of parallel iteration in the Concurrency Runtime: Let me say up front that this is my first blog, so I apologize if my writing format does not match what people have come to expect from a blog. I do hope, however, that this…

25

Auto-Vectorizer in Visual Studio 2012 – Did It Work?

  If you’ve not read previous posts in this series about auto-vectorization, you may want to begin at the beginning. This post will explain how to find out which loops in your C++ program were auto-vectorized.   Here is an example program, stored in a file called Source.cpp, with which to experiment: int main() {   const…

23

What’s new for C++ AMP in Visual Studio 2013

Since the first release of C++ AMP in Visual Studio 2012 nearly 8 months ago, we have been working hard to bring you the next set of C++ AMP features. BUILD 2013 day 2 keynote demo provided a snapshot of C++ AMP in Visual Studio 2013. In this post, we will delve into the C++…


What features do you want in C++ AMP V3?

A little over year ago, we released the first version of C++ AMP technology as a part of Visual Studio 2012. In Visual Studio 2013, we are on track to deliver the next version of C++ AMP. Hopefully, by now, you had a chance to learn about what is new for C++ AMP in Visual…


Image Effects Sample in C++ AMP

We have walked you through the C++ AMP texture feature with this series on concurrency::graphics, including how to interop with DirectX11 textures in C++ AMP. In this blog post, I will use a sample that implements some image effects to show you how to use the Interop APIs in real code. The sample is a…

21

Tasks and Continuations: Available for Download Today!

The most difficult problem that a scheduler or a thread pool has to solve is figuring out how many running threads to have at any given moment. Create too many threads and the CPUs are oversubscribed. Create too few and the CPUs are underutilized. The straightforward setup – one thread per core – doesn’t work…

20