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
and make_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 with Allen::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
into BaseArgument
and AllenArgument
.