Skip to content

v2024.07.0

Latest
Compare
Choose a tag to compare
@rhornung67 rhornung67 released this 24 Jul 19:55
4d7fcba

This release contains new features, improvements, and bugfixes.

Please download the RAJA-v2024.07.0.tar.gz file below. The others, generated by GitHub, may not work for you due to RAJA's dependencies on git submodules.

Notable changes include:

  • New features / API changes:

    • Added support for a "multi-reduction" operation which allows users to perform a run time-defined number of reduction operations in a kernel. Please see the RAJA User Guide for details and examples.
    • Added first couple of sections for a "RAJA Cookbook" in the RAJA User Guide. The goal is to provide users with more detailed guidance about using RAJA features, choosing execution policies, etc. Additional content will be provided in future releases.
    • Added atomicLoad and atomicStore routines for correctness in some use cases.
    • Added OpenMP 5.1 implementations for atomicMin and atomicMax.
    • Add SYCL reduction support in RAJA::launch
  • Build changes/improvements:

    • Update camp submodule to v2024.07.0 release. There will be a version constraint for this release in RAJA Spack package when that is pushed upstream to Spack.
    • Minimum required CMake version bumped to 3.23.
  • Bug fixes/improvements:

    • Fix CMake issue for case when RAJA is used as a submodule dependency.
    • Various fixes and improvements to builtin atomic support.
    • Fixes and improvements to other atomic operations:
      • Modified HIP and CUDA generic atomic compare and swap algorithms to use atomic loads instead of relying on volatile.
      • Re-implemented atomic loads in terms of builtin atomics for CUDA and HIP so that the generic compare and swap functions can use it.
      • Removes volatile qualifier in atomic function signatures.
      • Use cuda::atomic_ref in newer versions of CUDA to back atomicLoad/atomicStore.
      • Use atomicAdd as a fallback for atomicSub in CUDA.
      • Removed checks where CUDA_ARCH is less than 350 since RAJA requires that as the minimum supported architecture (CMake check).
    • Fixed issues with naming RAJA forall::kernels when using CUDA.
    • Fixes in SYCL back-end for RAJA::launch.
    • Fixed some issues in examples.
    • Bugfixes and cleanup in parts of the SYCL back-end needed to support a bunch of new SYCL kernels that will appear in RAJA Performance Suite release.
    • Fix type naming issue that was exposed with a new version of the Intel oneAPI compiler.
    • Fix issue in User Guide documentation for configuring a project using RAJA CMake configuration.