GPU computing has gone mainstream. It is a dominant part of the performance landscape, providing the initial 10x performance lift to a wide variety of applications. However, programing for GPUs can be extremely challenging. C++ is rarely available in an unmodified form, and there are few portable and open source approaches available. One of the most popular platforms, CUDA
, has no production quality open source implementation. As a consequence, its C++ support has lagged behind and it has been a less appealing area for researchers and others that weren’t comfortable relying on NVIDIA’s tooling.
However, today things are different. Clang
is now a fully functional open-source GPU compiler. It provides a CUDA
-compatible programming model and can compile most of the awesome CUDA libraries out there ranging from Thrust (the CUDA
-enabled parallel algorithms library that gave rise to the new parallelism technical specification) to Eigen
In this talk we will give an overview of how LLVM
support targeting C++ to GPUs, how they work to be compatible with existing CUDA
code, and how you can build your code today to run on GPUs with this open source compiler.