The CUDA C++ Standard Library by Bryce Adelstein Lelbach
Channel: Cpp Toronto
Date: 13/11/2020

CUDA C++ is a extension of the ISO C++ language which allows you to use familiar C++ tools to write parallel programmings that run on GPUs. However, one essential C++ tool has been missing from device-side CUDA C++; the C++ standard library. But not any longer!Introduced in the CUDA 10.2 toolkit, libcu++ is an opt-in heterogeneous CUDA C++ standard library. The initial release delivers C++ atomics - a more correct, efficient, and powerful replacement for the legacy CUDA `atomic*` functions - and type traits. In this example-oriented talk we'll explain how and when to start using libcu++ and explain how it can be used to build complex concurrent data structures and enable new classes of applications on modern NVIDIA GPUs. We'll also give you a sneak preview of our future roadmap for libcu++ - barriers, semaphores, efficient atomic waiting, clocks,vocabulary types, and more. Bryce Adelstein Lelbach has spent nearly a decade developing libraries in C++. Bryce is passionate about C++ evolution and is one of the leaders of the C++community. He is an officer of ISO/IEC JTC1/SC22/WG21, the C++ Standards Committee. Bryce chairs INCITS PL22, the US standards committee for programming languages, and the ISO C++ Library Evolution Group (LEWG); previously he chaired the ISO C++ Tooling Study Group (SG15) and Library Incubator Group(SG18). He is also the program chair for the C++Now and CppCon conferences, and the chief organizer of the Bay Area C++ User Group. On the C++ Committee, he has personally worked on the C++17 parallel algorithms, executors, futures,senders/receivers, multidimensional arrays, and modules. Bryce works at NVIDIA, where he leads the CUDA C++ core libraries team and works on CUDA compilers. He is one of the initial developers of the HPX parallel runtime system. He also helped start the LLVM Linux initiative and has occasionally contributed to the Boost C++ libraries.