Controlling Floating-Point Determinism in NVIDIA CCCL
By Jakub Antkiewicz
•2026-03-07T08:30:51Z
NVIDIA has introduced explicit controls for floating-point determinism within its CUDA Core Compute Libraries (CCCL 3.1), giving developers the ability to manage a critical challenge in parallel computing. The new single-phase API in the CUB library directly addresses the need for bitwise reproducibility, a key requirement for debugging complex AI models, validating scientific simulations, and ensuring consistent results across hardware deployments.
The update provides three distinct determinism levels developers can specify in their execution environment. The `not_guaranteed` setting maximizes performance by using unordered atomic operations, while the default `run_to_run` option ensures identical results across multiple executions on the same GPU. For the highest level of consistency, a `gpu_to_gpu` mode uses a Reproducible Floating-point Accumulator (RFA) to guarantee bitwise-identical outcomes across different GPU architectures. This strictest level comes with a performance trade-off, increasing execution time by 20-30% for large datasets.
This granular control allows developers to make intentional trade-offs between computational speed and result consistency. For enterprise AI and research sectors, the ability to enforce strict reproducibility simplifies model validation and cross-platform verification. Conversely, applications less sensitive to minute floating-point variations can now formally opt for a non-deterministic mode to maximize throughput. NVIDIA plans to extend these determinism controls to other algorithms beyond reductions, indicating a broader strategy to support the rigorous demands of production-grade AI and HPC workloads.
NVIDIA is addressing the foundational requirements of enterprise and scientific computing by providing tools that prioritize correctness and reproducibility, signaling a market maturity that moves beyond raw performance benchmarks to solve practical, long-standing development challenges.