Expand description
CUDA’s C++ atomic APIs are a mess of inconsistency. Old-style APIs use weird types, newer
std::atomic APIs don’t support many types. So for ops where type support is complex, we lower
the atomics directly to PTX. This allows a consistent API across all the different type and
vectorization options, and significantly extends the interface that can be accessed from C++.