The One-Decade Task: Putting std::atomic in CUDA.
summary
A ten‑year engineering effort implements std::atomic in CUDA, with a concise claim: provide C++ atomics on GPUs by formalizing a GPU memory model, proving properties with SAT tooling and Alloy, and updating the libc++ <atomic> header and 100+ builtins. The team encodes litmus tests (MP), finds counterexamples with cppmem and Alloy, refines to a 180‑line model emphasizing single‑copy atomicity, and ships working implementations for Volta and Pascal that integrate host/device atomics.
AI-written summary · about
chapters (12)
- 0:00Introduction and context
- 3:05Side projects and early efforts
- 6:34Formalism and memory model fixes
- 12:57Redesigning the GPU memory model
- 20:49Partial order models and litmus tests
- 34:09Debugging with Alloy
- 41:43Sequential consistency in Alloy
- 51:29C++11 atomic model issues
- 55:08Volta hardware and atomic support
- 58:19CUDA atomic library implementation
- 1:00:33Adopting std::atomic in CUDA
- 1:03:50Conclusion and call to action
related talks
14mFoundational HPC Systems for 2020 and Beyond
31mCost semantics and static resource analysis for CUDA
54mPanel Discussion
27mPractical Quantum Computing
01h 44mKeynote: The Tragedy of C++, Acts One & Two
20mThe Atos Quantum Programme: A QPU in 2023?
56m25 Years of Storage Research and Education: A Retrospective
31mOrthogonal Remarks
