v2022.03.0
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 fromumpire/interface/
toumpire/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 aDeviceAllocator
object from the kernel without explicitly passing the allocator to the kernel first. - Added a
reset
function to theDeviceAllocator
so that old data can be rewritten. - Expose
PREFETCH
operations registered with theMemoryOperationRegistry
with a newResourceManager::prefetch
method.
Removed Interfaces
The following functions previously marked as deprecated have now been removed:
DynamicPoolMap
andDynamicPool
aliases removedregisterAllocator
andisAllocatorRegistered
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 haveUMPIRE_
prefixes and are now dependent upon correspondingBLT
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