Repository navigation
SyclReproSum 1.2.6
SyclReproSum 1.2.6 fixes a reproducibility issue in generic SPIR float
conversion. On CPU OpenCL, some high-fold sums and cumulative sums could differ
by one ULP between work-group sizes.
The library remains header-only, C++17, and source-compatible with version
1.2.5.
Highlights
- Guard generic SPIR
floatconversion against the observed CPU OpenCL JIT
rounding difference. - Preserve the existing arithmetic order and native NVIDIA and AMD paths.
- Add regression coverage for sums and cumulative sums across work-group sizes,
fold counts, input permutations, scaling, in-place scans, and devices. - Update the encoded library version to 1.2.6.
- Refresh the README benchmark results.
Testing and validation
- All 768 tests passed on the four-device NVIDIA, AMD, Intel GPU, and Intel CPU
system. - All 567 correctness tests passed on the Intel Arc Pro B70, Intel iGPU, and
Intel CPU system. - Hostile and unsafe floating-point environment validation passed.
Compatibility and upgrade notes
- Existing
adn::sum,adn::cumsum, andadn::validate_environmentcalls
require no changes. - Recompile applications after updating
repro_sum.hpp. - Native NVIDIA and AMD conversion paths are unchanged.
Full comparison:
v1.2.5...v1.2.6
Attribution and license
SyclReproSum is licensed under the BSD 3-Clause License. Portions of the binned
accumulator primitives are adapted from ReproBLAS. See THIRD_PARTY_NOTICES
for details.