Skip to content

Execution spaces abstractions and misc fixes

Compare
Choose a tag to compare
@cnpetra cnpetra released this 20 Feb 21:58
· 47 commits to develop since this release
d0f57c8

This release hosts a series of comprehensive internal developments and software re-engineering to improve the portability and performance on accelerators/GPU platforms. No changes to the user interface permeated under this release.

Notable new features

A new execution space abstraction is introduced to allow multiple hardware backends to run concurrently. The proposed design differentiates between "memory backend" and "execution policies" to allow using RAJA with Umpire-managed memory, RAJA with Cuda- or Hip-managed memory, RAJA with std memory, Cuda/Hip kernels with Cuda-/Hip- or Umpire-managed memory, etc.

  • Execution spaces: support for memory backends and execution policies by @cnpetra in #543
  • Build: Cuda without raja by @cnpetra in #579
  • Update of RAJA-based dense matrix to support runtime execution spaces by @cnpetra in #580
  • Reorganization of device namespace by @cnpetra in #582
  • RAJA Vector int with ExecSpace by @cnpetra in #583
  • Instrumentation of host vectors with execution spaces by @cnpetra in #584
  • Remove copy from/to device methods in vector classes by @cnpetra in #587
  • Add support for Raja with OpenMP into LLNL CI by @nychiang in #566

New vector classes using vendor-provided API were introduced and documentation was updated/improved

Refinement of triangular solver implementation for Ginkgo by @fritzgoebel in #585

Bug fixes

New Contributors