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_bufferandmake_device_bufferwith 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_vectorand 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. -
initializehas been replaced withAllen::memset_async. -
The store is now self-contained. That is, an object of type
UnorderedStorecontains 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
ArgumentDataintoBaseArgumentandAllenArgument.