New Release of the AMP Algorithms Library

If you are fond of high-performance algorithms, you will be pleased to find out that our friend Ade Miller has just issued a new iteration of the AMP Algorithms Library. As usual, Ade’s work is top notch, and it brings notable improvements across the board; in his own words: Finally, there is a new release…


FaceMorphing Windows Store Application

In our earlier blog post, we introduced the image morphing desktop application, which uses C++ AMP for computations internally.  That sample demonstrates how to blend the C++ AMP code into a C# application.  In this blog post, we revisit the same sample. We have made it more interesting this time with an interactive UI by converting into…


Eigen Values

The computation of Eigen values is an important problem to solve in linear algebra, statistics, physics, bio metrics and many other fields. In this blog post, I would like to share the Eigen Values sample implemented using C++ AMP. This is the C++ AMP Version of NVIDIA CUDA’s Eigen Values Sample Introduction Given an n…


C++ AMP Open Spec V1.2 Published

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 C++ AMP open specification on any platform, and we are actively working with interested parties already. AMD’s…

Texture with Mipmaps

In the v2 release of C++ AMP through Visual Studio 2013, one of our main efforts were focused around extending the features of textures by supporting Texture Mipmaps. Introduction Mipmaps are the sequence of images that accompany the main texture image. Each dimension in subsequent image is half of the previous one. For example: 64×64…


Support of 3-Component Textures

In Visual Studio 2012, C++ AMP introduced concurrency::graphics::texture data container and the support for three component texture formats was not provided in that release. In Visual Studio 2013, the support for the three component texture formats is included. Let’s dive deep down into those details.   Direct3D offers various data source formats for texel element….


array_view without Data Source

In Visual Studio 2012, C++ AMP introduced concurrency::array_view as a primary interface to read and write multi-dimensional data across the CPU and GPU accelerators. The construction of array_view always required a data source like std::vector, concurrency::array etc. It could be either a CPU pointer or any data container that supports .data() and .size() methods ….


Texture Copy Improvements in C++ AMP with Visual Studio 2013

C++ AMP in Visual Studio 2013 introduces a number of improvements to texture support. In this blog post, I will cover the improvements we have made over texture copy support in Visual Studio 2012. Texture copy support in C++ AMP was missing a few key features in Visual Studio 2012 compared to the copy support…


Staging Texture in C++ AMP

C++ AMP in Visual Studio 2012 had the ability to create staging array which helped in optimizing data transfer cost between the host and accelerator_view. In C++ AMP in Visual Studio 2013, we have enhanced the texture by adding the capability to create staging texture which brings in same benefits and has same semantics as…