Skip to content

SyclReproSum 1.2.6

Choose a tag to compare

@lilohuang lilohuang released this 11 Sep 07:29
· 3 commits to main since this release

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 float conversion 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, and adn::validate_environment calls
    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.