Skip to content

v2022.03.0

Compare
Choose a tag to compare
@mcfadden8 mcfadden8 released this 16 Mar 15:29
· 124 commits to develop since this release
2db6224

v2022.03.0

Changes Impacting Builds

This release of Umpire contains new build requirements including:

  • C++14 is now required to build Umpire
  • CMake version 3.14 or later is required
  • The install location for umpire-config.cmake has changed from $(UMPIRE_INSTALL)/share/umpire/cmake to $(UMPIRE_INSTALL)/lib/cmake/umpire.

Changes Impacting C/Fortran

  • The CMake object library for C/FORTRAN interface has been reorganized.
    (NOTE: This is a breaking change since the include paths are now different.)
  • The C/FORTRAN interface header files have moved from umpire/interface/ to umpire/interface/c_fortran/ so including files will need to be updated in order to find them.

New Interfaces

  • Added a getDeviceAllocator function that allows users to get a DeviceAllocator object from the kernel without explicitly passing the allocator to the kernel first.
  • Added a reset function to the DeviceAllocator so that old data can be rewritten.
  • Expose PREFETCH operations registered with the MemoryOperationRegistry with a new ResourceManager::prefetch method.

Removed Interfaces

The following functions previously marked as deprecated have now been removed:

  • DynamicPoolMap and DynamicPool aliases removed
  • registerAllocator and isAllocatorRegistered removed

Fixes

  • Fixed a cmake install config issue so that now users can find a package of Umpire with a version constraint.
  • Fix ResourceManager::isAllocator to work for resources
  • Fix comparison operators for TypedAllocators
  • Fix host and device Allocator ID overlap
  • Remove null and zero-byte pool from list of valid allocators

New Configuration Options

  • The UMPIRE_ENABLE_DEVICE_ALLOCATOR option was added to control whether or not the DeviceAllocator class is included in the library. The default is "Off".

Build/Deployment Improvements

  • C/FORTRAN API is now auto generated
  • The umpire-config.cmake package is now relocatable
  • Use blt namespace for hip targets
  • Umpire CMakeList options now have UMPIRE_ prefixes and are now dependent upon corresponding BLT options.
  • Removed hardcoded -Xcompiler -mno-float128 for GCC 8+ with CUDA on PowerPC.
  • Build Doxygen documentation on ReadTheDocs.

Continuous Integration Updates

  • Add CI job with interprocess shared memory and CUDA
  • Add CI containers to allow for gcc{7,8,9}, clang{11,12}, and nvcc{10,11}
  • Add CI to check pools work with DEVICE_CONST memory