Hello CUDA programmers!
If you’re familiar with CUDA, then this blog post and the attached guide may be for you. This learning guide will introduce you to C++ AMP by mapping familiar CUDA terms and concepts to similar terms and concepts in C++ AMP. It’s divided into two parts:
- A step-by-step guide to rewriting a CUDA implementation of matrix multiplication in C++ AMP. Using this familiar algorithm should help you focus on the process rather than the algorithm.
- A non-exhaustive set of tables that map the most common CUDA features to C++ AMP features.
Please keep in mind that this guide is an introduction to C++ AMP only. It covers only the most common features of both CUDA and C++ AMP, omitting many other important topics. It provides no guidance on how to use C++ AMP effectively or how to port your overall solution, which may be using additional libraries. In addition, this guide is not intended to be used to compare the merits of C++ AMP with those of CUDA. By presenting this guide, I am not suggesting you drop what you are using and adopt C++ AMP. Rather, the purpose of this guide is to help you more quickly ramp up on C++ AMP should you be interested in learning about this novel approach to accelerating general computations on a GPU using your existing knowledge. You can learn more about C++ AMP by following the links to the right of our C++ AMP blog.
With those caveats out of the way, please download and enjoy the PDF guide:
We encourage and welcome your questions and feedback. For questions and feedback specific to this guide, please use the comments section of this blog post below. In response to a question, we have also written a blog post on CUDA libraries. For questions and feedback related to C++ AMP in general, please continue to use our MSDN forum.