C++ AMP book now available

clip_image002The C++ AMP book by Kate Gregory and Ade Miller is now in print and available online and in good bookstores! It is a great place to start if you’re looking to get up and running with C++ AMP.

You can read a preview and buy the book on both the Amazon.com (paper and Kindle versions) and the O’Reilly web site (DRM free eBook, PDF and paper versions). You can also read it through Safari Books online. The source code for the samples and case studies is on CodePlex. Further details of the book can be found below.

Accelerated Massive Parallelism with Microsoft Visual C++
Kate Gregory and Ade Miller

Capitalize on the faster GPU processors in today’s computers with the C++ AMP code library—and bring massive parallelism to your project. With this practical book, experienced C++ developers will learn parallel programming fundamentals with C++ AMP through detailed examples, code snippets, and case studies. Learn the advantages of parallelism and get best practices for harnessing this library in your applications.

Discover how to:

  • Gain greater code performance using graphics processing units (GPUs)
  • Choose accelerators that enable you to write code for GPUs
  • Apply thread tiles, tile barriers, and tile static memory
  • Debug C++ AMP code with Microsoft Visual Studio®
  • Use profiling tools to track the performance of your code

Table of contents

Chapter 1 Overview and C++ AMP Approach
Chapter 2 NBody Case Study
Chapter 3 C++ AMP Fundamentals 
Chapter 4 Tiling 
Chapter 5 Tiled NBody Case Study 
Chapter 6 Debugging 
Chapter 7 Optimization
Chapter 8 Performance Case Study—Reduction
Chapter 9 Working with Multiple Accelerators
Chapter 10 Cartoonizer Case Study
Chapter 11 Graphics Interop
Chapter 12 Tips, Tricks, and Best Practices
Appendix Other Resources

Comments (5)

  1. tnvbalaji says:

    Eager  to read the books. Thanks for the post.


  2. win7 debugging? says:

    Still no support?

  3. Jo Blow says:

    Just started reading the book. I'd like to point out that parallelization  of  delayed recurrence relationships is actually possible contrary to what it says on p10.  One can partition the array into pieces. If some pieces depend other pieces it is still possible, in some cases, to parallel them. The example gives a[k] = a[k-1] + b[k]. We can assume that when k-1 is outside the partition it has a value of zero. This, then will throw off each value in the array by some constant. We can add it back in after the fact quite easily. Essentially it is a boundary value problem. The problem is that we have to potentially loop back over the entire array(possibly multiple times) and this may defeat the speed up in the first place. It will depend on the specific case. (there are other "tricks" that could potentially be used too… the point here, is only that it is possible).

  4. Ade Miller says:


    I agree, in this context (OpenMP) this should say "is not parallelizable in it's current form". I've added this as an errata to the O'Reilly site.