tatami_chunked
Helpers to create custom chunked tatami matrices
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
tatami_chunked::SlabCacheStats Struct Reference

Statistics for slab caching. More...

#include <SlabCacheStats.hpp>

Public Member Functions

 SlabCacheStats (size_t target_length, size_t non_target_length, size_t target_num_slabs, size_t cache_size_in_elements, bool require_minimum_cache)
 
 SlabCacheStats (size_t target_length, size_t non_target_length, size_t target_num_slabs, size_t cache_size_in_bytes, size_t element_size, bool require_minimum_cache)
 

Public Attributes

size_t slab_size_in_elements
 
size_t max_slabs_in_cache
 

Detailed Description

Statistics for slab caching.

This computes the slab size and the number of slabs to be cached, given the dimensions of the slab and the cache size in bytes. The assumption is that all slabs are of the same shape, partitioning the matrix into regular intervals along the target dimension. Developers should check out CustomDenseChunkedMatrix for some usage examples.

Constructor & Destructor Documentation

◆ SlabCacheStats() [1/2]

tatami_chunked::SlabCacheStats::SlabCacheStats ( size_t  target_length,
size_t  non_target_length,
size_t  target_num_slabs,
size_t  cache_size_in_elements,
bool  require_minimum_cache 
)
inline
Parameters
target_lengthLength of the target dimension of each slab. For example, if we were iterating through rows of a matrix, target_length would be the number of rows spanned by each slab.
non_target_lengthLength of the non-target dimension of each slab. For example, if we were iterating through matrix rows, the non_target_length would be the number of columns spanned by each slab.
target_num_slabsNumber of slabs required to span the full extent of the target dimension of the matrix. This is used as an upper bound on the value of max_slabs_in_cache. For example, if we were iterating through matrix rows, the target_num_slabs would be the number of slabs required to span all rows of the matrix.
cache_size_in_elementsTotal size of the cache, in terms of the number of data elements.
require_minimum_cacheWhether to enforce a minimum size of the cache for efficient extraction of consecutive dimension elements, even if it exceeds cache_size_in_elements.

◆ SlabCacheStats() [2/2]

tatami_chunked::SlabCacheStats::SlabCacheStats ( size_t  target_length,
size_t  non_target_length,
size_t  target_num_slabs,
size_t  cache_size_in_bytes,
size_t  element_size,
bool  require_minimum_cache 
)
inline
Parameters
target_lengthLength of the target dimension of each slab. For example, if we were iterating through rows of a matrix, target_length would be the number of rows spanned by each slab.
non_target_lengthLength of the non-target dimension of each slab. For example, if we were iterating through matrix rows, the non_target_length would be the number of columns spanned by each slab.
target_num_slabsNumber of slabs required to span the full extent of the target dimension of the matrix. This is used as an upper bound on the value of max_slabs_in_cache. For example, if we were iterating through matrix rows, the target_num_slabs would be the number of slabs required to span all rows of the matrix.
cache_size_in_bytesTotal size of the cache, in terms of the number of bytes.
element_sizeSize of each data element in the cache, in bytes. This may be zero, e.g., when neither the value nor the index are required during sparse extraction.
require_minimum_cacheWhether to enforce a minimum size of the cache for efficient extraction of consecutive dimension elements, even if it exceeds cache_size_in_bytes.

Member Data Documentation

◆ slab_size_in_elements

size_t tatami_chunked::SlabCacheStats::slab_size_in_elements

Size of each slab, in terms of the number of data elements.

◆ max_slabs_in_cache

size_t tatami_chunked::SlabCacheStats::max_slabs_in_cache

Number of slabs that can fit in the cache. This is used as max_slabs in LruSlabCache, OracularSlabCache and friends.


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