Table of Contents

  1. Introduction
  2. Supported Features
  3. Getting Started
  4. Tips and Tricks


C++ AMP Algorithms Library is a library of parallel patterns that C++ AMP developers can freely use in their own projects. It is based on C++ AMP and uses the container classes, iterators and algorithms approach as the C++ Standard Library (STL). Furthermore C++ AMP and the Algorithms Library use many of the new features of C++11. If you are not familiar with either C++ AMP or C++11 (Modern C++) then the Further Reading section contains some useful references.

In addition to providing a familiar programming model to developers with experience with the C++ Standard Library it also provides implementations of some common algorithms that are frequently used in data parallel programming:

  • Reduce – Implementation of reduce (also called fold)
  • Scan –Implementation of prefix sum (also called cumulative sum).
  • Sort – Implementations of various different data parallel sorting algorithms (currently only radix sort is supported).

In many cases these are used by the other (STL-like) algorithms.

While writing simple implementations of these algorithms is relatively straightforward writing optimized versions is not. The library is still under development but the goal is to further improve the performance of the libraries algorithms over time.

See the Supported Features page for a complete list of implemented features. If there is a particular feature that is important to you then create an entry in Discussions.

Further Reading

C++ AMP (C++ Accelerated Massive Parallelism), MSDN.

C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++, Kate Gregory and Ade Miller, Microsoft Press, September 2012, ISBN: 978-0-7356-6473-9.


C++ AMP : Language and Programming Model open specification, MSDN download, August 2012.

C++11 Features (Modern C++), MSDN.

Last edited Oct 3, 2014 at 3:22 AM by AdeMiller, version 14


No comments yet.