Statistics for slab caching.
More...
#include <SlabCacheStats.hpp>
|
template<typename Index_ , typename TargetNumSlabs_ > |
| SlabCacheStats (Index_ target_length, Index_ non_target_length, TargetNumSlabs_ target_num_slabs, std::size_t cache_size_in_elements, bool require_minimum_cache) |
|
template<typename Index_ , typename TargetNumSlabs_ > |
| SlabCacheStats (Index_ target_length, Index_ non_target_length, TargetNumSlabs_ target_num_slabs, std::size_t cache_size_in_bytes, std::size_t element_size, bool require_minimum_cache) |
|
template<typename MaxSlabs_>
struct tatami_chunked::SlabCacheStats< MaxSlabs_ >
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.
- Template Parameters
-
MaxSlabs_ | Integer type of the maximum number of slabs. |
◆ SlabCacheStats() [1/2]
template<typename MaxSlabs_ >
template<typename Index_ , typename TargetNumSlabs_ >
tatami_chunked::SlabCacheStats< MaxSlabs_ >::SlabCacheStats |
( |
Index_ | target_length, |
|
|
Index_ | non_target_length, |
|
|
TargetNumSlabs_ | target_num_slabs, |
|
|
std::size_t | cache_size_in_elements, |
|
|
bool | require_minimum_cache ) |
|
inline |
- Template Parameters
-
Index_ | Integer type of the dimension extents. |
TargetNumSlabs_ | Integer type of the number of slabs along the target dimension. |
- Parameters
-
target_length | Length 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_length | Length 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_slabs | Number 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_elements | Total size of the cache, in terms of the number of data elements. |
require_minimum_cache | Whether 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]
template<typename MaxSlabs_ >
template<typename Index_ , typename TargetNumSlabs_ >
tatami_chunked::SlabCacheStats< MaxSlabs_ >::SlabCacheStats |
( |
Index_ | target_length, |
|
|
Index_ | non_target_length, |
|
|
TargetNumSlabs_ | target_num_slabs, |
|
|
std::size_t | cache_size_in_bytes, |
|
|
std::size_t | element_size, |
|
|
bool | require_minimum_cache ) |
|
inline |
- Template Parameters
-
Index_ | Integer type of the dimension extents. |
TargetNumSlabs_ | Integer type of the number of slabs along the target dimension. |
- Parameters
-
target_length | Length 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_length | Length 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_slabs | Number 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_bytes | Total size of the cache, in terms of the number of bytes. |
element_size | Size 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_cache | Whether to enforce a minimum size of the cache for efficient extraction of consecutive dimension elements, even if it exceeds cache_size_in_bytes . |
◆ slab_size_in_elements
template<typename MaxSlabs_ >
Size of each slab, in terms of the number of data elements.
◆ max_slabs_in_cache
template<typename MaxSlabs_ >
The documentation for this struct was generated from the following file: