CppCon 2016: “Bringing Clang and C++ to GPUs: An Open-Source, CUDA-Compatible GPU C++ Compiler'

preview_player
Показать описание


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 and TensorFlow.

In this talk we will give an overview of how LLVM and Clang 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.

Justin Lebar
Software Engineer, Google
I lead the GPU compilers team at Google. (We work on CUDA/GPU support in Clang and LLVM.)


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

I LOVE THIS TALK !

This is relaxing to watch, especially when the whole "slide" is growing up while he explains everything .... definitly one of the best talks ever in the cppcon :) !!!

hanneshauptmann
Автор

this is amazing ! one of the best presentation in CppCon 2016

kgarbaya
Автор

Beautiful. Completely blown away by the lucidity of this.

pariveshplayson
Автор

Very good way of presenting CUDA, especially the lecture like way makes it a lot more enjoyable to watch.

mmnnc
Автор

Best intro to CUDA I've ever seen :-) And the drawing/writing is awesome.

Автор

Thank you Justin. The talk is refreshing departure from normal power point.

muppalaneninitin
Автор

I am very very impressed with this talk.

VrajPandya
Автор

I wonder some compiler benchmarking, could you give me some advices? thx~

xiaorik
Автор

In my experience warp-block-grid decomposition affects performance a lot in different way on different generations of GPUs, so "only one source for all GPUs" is very bad practice, it will work (thanx to PTX) but it will be very non-optimal on all but one GPUs. So, if you need really high-performance code, you need to know your target GPU before you run clang/CUDA or nvcc :(

blacklion
Автор

Which C++ compiler are we actually using, how do we debug, if you want to do this in windows?

colinmaharaj
Автор

Do blocked threads ever get stuck in the queue? Like, is there ordering by wait time?

meepk
Автор

Is there a way to compile c++ on gpu instead of cpu.

CecilMerrell
Автор

Please, what camera + stand did you use?

cartesius
Автор

How come the 18 cores are so spread out? Would it not be easier to arrange them in a grid?

mikevasiljevs
Автор

Can CUDA/OpenCL handle GMP? AFAIK I have to "manually import" that into CUDA code.

peppybocan
Автор

What's the lecturer's reasoning behind not making a digital presentation?

ashrasmun
visit shbcf.ru