Controlling Floating-Point Determinism in NVIDIA CCCL

Originally published at: Controlling Floating-Point Determinism in NVIDIA CCCL | NVIDIA Technical Blog

A computation is considered deterministic if multiple runs with the same input data produce the same bitwise result. While this may seem like a simple property to guarantee, it can be difficult to achieve in practice, especially in parallel programming and floating-point arithmetic. This is because floating-point addition and multiplication aren’t strictly associative—that is, (a…