|
Uni20
Asynchronous tensor and runtime library.
|
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 |
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.
| LeafStorage | Tensor storage policy used by the packed buffer. |
| BlockAlignment | Required byte alignment of every block start. |
| using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::backend_selector_type = typename leaf_storage_policy::backend_selector_type |
| using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::block_execution_policy = SchedulerBatchBlockExecution |
| using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::leaf_storage_policy = LeafStorage |
| using uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >::storage_t = detail::PackedBlockStorageData<T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy, BlockAlignment> |
|
inlinestaticconstexprnoexcept |
|
staticconstexpr |
|
staticconstexpr |