Ginkgo
Generated from pipelines/1571899447 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
|
imbalance_limit is a strategy_type which decides the number of stored elements per row of the ell part according to the percent. More...
#include <ginkgo/core/matrix/hybrid.hpp>
Public Member Functions | |
imbalance_limit (double percent=0.8) | |
Creates a imbalance_limit strategy. More... | |
size_type | compute_ell_num_stored_elements_per_row (array< size_type > *row_nnz) const override |
Computes the number of stored elements per row of the ell part. More... | |
auto | get_percentage () const |
Get the percent setting. More... | |
Public Member Functions inherited from gko::matrix::Hybrid< ValueType, IndexType >::strategy_type | |
strategy_type () | |
Creates a strategy_type. | |
void | compute_hybrid_config (const array< size_type > &row_nnz, size_type *ell_num_stored_elements_per_row, size_type *coo_nnz) |
Computes the config of the Hybrid matrix (ell_num_stored_elements_per_row and coo_nnz). More... | |
size_type | get_ell_num_stored_elements_per_row () const noexcept |
Returns the number of stored elements per row of the ell part. More... | |
size_type | get_coo_nnz () const noexcept |
Returns the number of nonzeros of the coo part. More... | |
imbalance_limit is a strategy_type which decides the number of stored elements per row of the ell part according to the percent.
It sorts the number of nonzeros of each row and takes the value at the position floor(percent * num_row)
as the number of stored elements per row of the ell part. Thus, at least percent
rows of all are in the ell part.
|
inlineexplicit |
Creates a imbalance_limit strategy.
percent | the row_nnz[floor(num_rows*percent)] is the number of stored elements per row of the ell part |
|
inlineoverridevirtual |
Computes the number of stored elements per row of the ell part.
row_nnz | the number of nonzeros of each row |
Implements gko::matrix::Hybrid< ValueType, IndexType >::strategy_type.
References gko::array< ValueType >::get_data(), and gko::array< ValueType >::get_size().
Referenced by gko::matrix::Hybrid< ValueType, IndexType >::imbalance_bounded_limit::compute_ell_num_stored_elements_per_row(), and gko::matrix::Hybrid< ValueType, IndexType >::minimal_storage_limit::compute_ell_num_stored_elements_per_row().
|
inline |
Get the percent setting.
Referenced by gko::matrix::Hybrid< ValueType, IndexType >::imbalance_bounded_limit::get_percentage(), and gko::matrix::Hybrid< ValueType, IndexType >::minimal_storage_limit::get_percentage().