Statistics for slab caching.
More...
#include <SlabCacheStats.hpp>
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.
◆ 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_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]
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_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
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 |
The documentation for this struct was generated from the following file: