Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Concepts
block_tensor_storage.hpp File Reference

Defines local sparse and packed-complete BlockTensor storage policies. More...

#include <uni20/async/async.hpp>
#include <uni20/common/initialization.hpp>
#include <uni20/core/types.hpp>
#include <uni20/mdspan/diagonal_accessor.hpp>
#include <uni20/mdspan/generated_layout.hpp>
#include <uni20/mdspan/mdspec.hpp>
#include <uni20/storage/host_storage.hpp>
#include <uni20/symmetry/block_key.hpp>
#include <uni20/tensor/mdspec_tensor_view.hpp>
#include <uni20/tensor/tensor.hpp>
#include <algorithm>
#include <array>
#include <concepts>
#include <cstddef>
#include <limits>
#include <numeric>
#include <span>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for block_tensor_storage.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::AsyncSeparateSparseBlockStorage< LeafStorage >
 Sparse storage with one independently scheduled dense Tensor per block. More...
 
struct  uni20::PackedCompleteBlockStorage< LeafStorage, BlockAlignment >
 Complete storage packing every symmetry-legal dense block into one leaf buffer. More...
 
struct  uni20::PackedDiagonalBlockStorage< LeafStorage >
 Sparse BlockTensor storage packing each generalized diagonal block into one leaf buffer. More...
 
struct  uni20::PackedSparseBlockStorage< LeafStorage, BlockAlignment >
 Sparse storage packing every stored dense block into one leaf buffer. More...
 
struct  uni20::ParallelPackedCompleteBlockStorage< LeafStorage, BlockAlignment >
 Complete packed storage whose disjoint blocks may be processed in a scheduler batch. More...
 
struct  uni20::ParallelPackedSparseBlockStorage< LeafStorage, BlockAlignment >
 Packed sparse storage whose disjoint dense blocks may be processed in a scheduler batch. More...
 
struct  uni20::ParallelSeparateSparseBlockStorage< LeafStorage >
 Sparse storage whose separate dense blocks may be processed in a scheduler batch. More...
 
struct  uni20::SchedulerBatchBlockExecution
 Execute independent block-level work through the active scheduler's synchronous batch interface. More...
 
struct  uni20::SeparateSparseBlockStorage< LeafStorage >
 Sparse storage with one independently owning dense Tensor per stored block. More...
 
struct  uni20::SerialBlockExecution
 Execute block-level work serially on the calling thread. More...
 

Namespaces

namespace  uni20
 

Concepts

concept  uni20::BlockTensorStorage
 Storage policy for a BlockTensor container.
 
concept  uni20::SparseBlockStorage
 BlockTensor storage whose stored key set may omit legal blocks.
 
concept  uni20::CompleteBlockStorage
 BlockTensor storage which contains every symmetry-legal block.
 
concept  uni20::DiagonalBlockStorage
 BlockTensor storage whose stored numerical blocks are generalized diagonals.
 
concept  uni20::BlockTensorStorageFor
 Storage policy instantiated for one block scalar and tensor order.
 
concept  uni20::LocalBlockStorageFor
 BlockTensor storage whose blocks reside within one local process.
 
concept  uni20::ImmediateLocalBlockStorageFor
 Local BlockTensor storage whose block TensorViews are immediately accessible.
 
concept  uni20::AsyncLocalBlockStorageFor
 Local BlockTensor storage with one independently scheduled async value per block.
 
concept  uni20::DistributedBlockStorageFor
 Distributed BlockTensor storage refinement.
 

Detailed Description

Defines local sparse and packed-complete BlockTensor storage policies.