The One-Decade Task: Putting std::atomic in CUDA. - Olivier Giroux - CppCon 2019
CppConCited 5× on HN, 2019–2022
talk · advanced · evergreen · 2019–2022 on HN
Olivier Giroux's CppCon 2019 talk recounts the roughly ten-year effort to bring std::atomic and the C++ memory model to CUDA GPUs, through ten stories from that work.
Cited as a reference when discussing NVIDIA's C++ memory model, libcu++, and GPU C++ resources.
Up next
11 mo on HNCppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
7 HN recommender · 2017–2025
12 mo on HNLexical Scanning in Go - Rob Pike
GoogleFOSSSydney
13 HN recommender · 2012–2025
10 mo on HNCppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
CppCon
9 HN recommender · 2018–2026
9 mo on HNRustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
9 HN recommender · 2018–2023
10 mo on HNCppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”
CppCon
13 HN recommender · 2016–2024
9 mo on HNIdeas about a new programming language for games.
Jonathan Blow
7 HN recommender · 2014–2025
9 mo on HNCppCon 2014: Mike Acton "Data-Oriented Design and C++"
CppCon
9 HN recommender · 2015–2026
9 mo on HNHow I program C
Eskil Steenberg
8 HN recommender · 2017–2025
9 mo on HNGoogle I/O 2012 - Go Concurrency Patterns
Google for Developers
9 HN recommender · 2012–2025
7 mo on HNCppCon 2015: Kate Gregory “Stop Teaching C"
CppCon
7 HN recommender · 2016–2025
7 mo on HNZig: A programming language designed for robustness, optimality, and clarity – Andrew Kelley
Recurse Center
6 HN recommender · 2018–2024
7 mo on HNCppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"
CppCon
7 HN recommender · 2014–2024
5 comments from Hacker News
> I really wish that everybody would finally admit that the "fixed function pipeline" is dead There is a great deal of space between 'fixed function pipeline' (which no one is using) and 'all compute all the time' (which pretty much no one is using for real-time graphics either). > GPUs don't yet have a well-defined memory model Nvidia has a memory model. (I have heard--from an nvidia employee--that amd plays a bit more fast and loose.) ▶ this video > GPUs don't have the equivalent of an MMU--so they can't be partitioned or protected. etc. You do not need an MMU to partition or to protect. (Not to say that GPU security isn't a shitshow.) > The problem is that switching to a "compute" model and making that work well would commodify the GPU--and that's the last thing that AMD and NVIDIA want. link look at where nvidia's revenue is coming from, and tell me again that they're not already there.
Sure, "CppCon 2016: “Bringing Clang and C++ to GPUs: An Open-Source, CUDA-Compatible GPU C++ Compiler" link "CppCon 2019: Olivier Giroux “The One-Decade Task: Putting std::atomic in CUDA.”" ▶ this video "Octane render. The Future of GPU Rendering: Real-Time Raytracing" (with CUDA) link NVIDIA HPC SDK link
CppCon 2019: Olivier Giroux “The One-Decade Task: Putting std::atomic in CUDA.” ▶ this video Future of ISO and CUDA C++ link Thrust, the CUDA C++ template library link Optix, single-ray shader programming model using C++, and ray Tracing acceleration using RT Cores. link Phew, so many wrappers yet to list.
Here's a somewhat related talk from CppCon '19: "The One-Decade Task: Putting std::atomic in CUDA" ▶ this video
Right now, NVidia is designing their GPGPUs to run C++ code. link ▶ this video With Intel just releasing oneAPI (aka Data Parallel C++) last month, and Khronos pushing SYCL as alternative to CUDA C++. It took 30 years for C++ to reach this stage, and in some domains (like embedded) it is still fighting for relevance. That is something to keep in mind whenever to advocate Rust as replacement for Domain XYZ.