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

Sparse storage whose separate dense 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::SeparateSparseBlockStorageData< T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy >
 

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 = false
 

Detailed Description

template<class LeafStorage = HostStorage>
struct uni20::ParallelSeparateSparseBlockStorage< LeafStorage >

Sparse storage whose separate dense blocks may be processed in a scheduler batch.

Algorithms must place all writes to one logical output block in the same batch item. The batch call is synchronous, so the BlockTensor remains an ordinary immediate value after the operation returns.

Template Parameters
LeafStorageTensor storage policy used by each dense block.

Member Typedef Documentation

◆ backend_selector_type

template<class LeafStorage = HostStorage>
using uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::backend_selector_type = typename leaf_storage_policy::backend_selector_type

◆ block_execution_policy

template<class LeafStorage = HostStorage>
using uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::block_execution_policy = SchedulerBatchBlockExecution

◆ leaf_storage_policy

template<class LeafStorage = HostStorage>
using uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::leaf_storage_policy = LeafStorage

◆ storage_t

template<class LeafStorage = HostStorage>
template<typename T , std::size_t KeyCoordinateCount, std::size_t DenseBlockOrder>
using uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::storage_t = detail::SeparateSparseBlockStorageData<T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy>

Member Function Documentation

◆ backend_selector()

template<class LeafStorage = HostStorage>
static constexpr auto uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::backend_selector ( ) -> backend_selector_type
inlinestaticconstexprnoexcept

Member Data Documentation

◆ is_distributed

template<class LeafStorage = HostStorage>
constexpr bool uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::is_distributed = false
staticconstexpr

◆ stores_all_legal_blocks

template<class LeafStorage = HostStorage>
constexpr bool uni20::ParallelSeparateSparseBlockStorage< LeafStorage >::stores_all_legal_blocks = false
staticconstexpr

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