Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment > Struct Template Reference

Complete packed storage whose disjoint blocks may be processed in a scheduler batch. More...

#include <block_tensor_storage.hpp>

Public Types

using backend_selector_type = typename leaf_storage_policy::backend_selector_type
 
using block_execution_policy = SchedulerBatchBlockExecution
 
using leaf_storage_policy = LeafStorage
 
template<typename T , std::size_t KeyCoordinateCount, std::size_t DenseBlockOrder>
using storage_t = detail::PackedBlockStorageData< T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy, BlockAlignment >
 

Static Public Member Functions

static constexpr auto backend_selector () noexcept -> backend_selector_type
 

Static Public Attributes

static constexpr bool is_distributed = false
 
static constexpr bool stores_all_legal_blocks = true
 

Detailed Description

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
struct uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >

Complete packed storage whose disjoint blocks may be processed in a scheduler batch.

The packed buffer and canonical legal-key layout remain fixed. Algorithms must place all writes to one logical output block in the same synchronous batch item. A BlockAlignment greater than one pads block starts to that byte alignment.

Template Parameters
LeafStorageTensor storage policy used by the packed buffer.
BlockAlignmentRequired byte alignment of every block start.

Member Typedef Documentation

◆ backend_selector_type

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::backend_selector_type = typename leaf_storage_policy::backend_selector_type

◆ block_execution_policy

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::block_execution_policy = SchedulerBatchBlockExecution

◆ leaf_storage_policy

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::leaf_storage_policy = LeafStorage

◆ storage_t

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
template<typename T , std::size_t KeyCoordinateCount, std::size_t DenseBlockOrder>
using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::storage_t = detail::PackedBlockStorageData<T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy, BlockAlignment>

Member Function Documentation

◆ backend_selector()

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
static constexpr auto uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::backend_selector ( ) -> backend_selector_type
inlinestaticconstexprnoexcept

Member Data Documentation

◆ is_distributed

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
constexpr bool uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::is_distributed = false
staticconstexpr

◆ stores_all_legal_blocks

template<class LeafStorage = HostStorage, std::size_t BlockAlignment = 1>
constexpr bool uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::stores_all_legal_blocks = true
staticconstexpr

The documentation for this struct was generated from the following file: