Skip to content

Improved type-ful store

Daniel Campora Perez requested to merge dcampora_typeful_store into master

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.

Edited by Daniel Campora Perez

Merge request reports