Improved type-ful store
This MR adds type information to the store and adds the ability to the store to produce temporary buffers that are allocated in the memory managers.
-
Algorithms can now use
make_host_buffer
andmake_device_buffer
with two signatures each:template<typename T, typename Args> auto make_host_buffer(const Args& arguments, const size_t size)
and
template<typename Arg, typename Args> auto make_host_buffer(const Args& arguments, const Allen::Context& context)
The latter replaces
make_vector
and does not have a performance penalty, since the data is allocated in a memory manager. -
It becomes now possible to create temporary buffers in Allen that are not part of
Parameters
. -
initialize
has been replaced withAllen::memset_async
. -
The store is now self-contained. That is, an object of type
UnorderedStore
contains all key-value pairs, a host and a device memory manager, and manages the actual creation / destruction of arguments. This is a step towards configurable Allen persistency. -
Separated
ArgumentData
intoBaseArgument
andAllenArgument
.