KokkosSparse::SortCRS¶
Defined in header KokkosSparse_sort_crs.hpp
SortAlgorithm Enum¶
enum class SortAlgorithm {
DEFAULT,
PARALLEL_THREAD_LEVEL,
BULK_SORT
};
The SortAlgorithm enum specifies the sorting strategy to use for CRS matrices and graphs. The available options are:
DEFAULT: Automatically selects the best sorting strategy based on the execution space and matrix properties.
PARALLEL_THREAD_LEVEL: Forces parallel thread-level sorting within each row.
BULK_SORT: Order all entries in the matrix/graph using a single sort-by-key. This is the default algorithm for highly imbalanced matrices or graphs.
Functions¶
Function |
Description |
---|---|
Sorts the adjacent column list for each row of a CRS matrix into ascending order. Permutes the values accordingly. |
|
Sorts the rows of a Block Row Storage (BRS) matrix, permuting the values accordingly. |
|
Sorts the adjacent column list for each row of a CRS graph into ascending order. |
|
Produces a new CRS matrix that is sorted and has no duplicate entries. Values for duplicate entries are summed. |
|
Produces a new CRS graph that is sorted and has no duplicate entries. |
sort_crs_matrix¶
template <typename execution_space, typename rowmap_t, typename entries_t, typename values_t>
void sort_crs_matrix(const execution_space& exec, const rowmap_t& rowmap, const entries_t& entries,
const values_t& values,
typename entries_t::non_const_value_type numCols =
Kokkos::ArithTraits<typename entries_t::non_const_value_type>::max(),
SortAlgorithm option = SortAlgorithm::DEFAULT);
Sorts the adjacent column list for each row of a CRS matrix into ascending order. Permutes the values accordingly.
Template Parameters¶
- execution_space:
The Kokkos execution space to use for parallel operations.
- rowmap_t:
Type of the row map view.
- entries_t:
Type of the entries view.
- values_t:
Type of the values view.
Parameters¶
- exec:
Execution space instance.
- rowmap:
Row map view of the CRS matrix.
- entries:
Entries view of the CRS matrix.
- values:
Values view of the CRS matrix.
- numCols:
Number of columns in the matrix (optional).
- option:
Sorting strategy (optional, defaults to SortAlgorithm::DEFAULT).
sort_bsr_matrix¶
template <typename execution_space, typename rowmap_t, typename entries_t, typename values_t, typename Ordinal>
void sort_bsr_matrix(const execution_space& exec, Ordinal blockSize, const rowmap_t& rowmap, const entries_t& entries,
const values_t& values,
typename entries_t::non_const_value_type numCols =
Kokkos::ArithTraits<typename entries_t::non_const_value_type>::max());
Sorts the rows of a Block Row Storage (BRS) matrix, permuting the values accordingly.
Template Parameters¶
- execution_space:
The Kokkos execution space to use for parallel operations.
- rowmap_t:
Type of the row map view.
- entries_t:
Type of the entries view.
- values_t:
Type of the values view.
- Ordinal:
Type of the block size.
Parameters¶
- exec:
Execution space instance.
- blockSize:
Size of the blocks in the BRS matrix.
- rowmap:
Row map view of the BRS matrix.
- entries:
Entries view of the BRS matrix.
- values:
Values view of the BRS matrix.
- numCols:
Number of columns in the matrix (optional).
sort_crs_graph¶
template <typename execution_space, typename rowmap_t, typename entries_t>
void sort_crs_graph(const execution_space& exec, const rowmap_t& rowmap, const entries_t& entries,
typename entries_t::non_const_value_type numCols =
Kokkos::ArithTraits<typename entries_t::non_const_value_type>::max(),
SortAlgorithm option = SortAlgorithm::DEFAULT);
Sorts the adjacent column list for each row of a CRS graph into ascending order.
Template Parameters¶
- execution_space:
The Kokkos execution space to use for parallel operations.
- rowmap_t:
Type of the row map view.
- entries_t:
Type of the entries view.
Parameters¶
- exec:
Execution space instance.
- rowmap:
Row map view of the CRS graph.
- entries:
Entries view of the CRS graph.
- numCols:
Number of columns in the graph (optional).
- option:
Sorting strategy (optional, defaults to SortAlgorithm::DEFAULT).
sort_and_merge_matrix¶
template <typename exec_space, typename rowmap_t, typename entries_t, typename values_t>
void sort_and_merge_matrix(const exec_space& exec, const typename rowmap_t::const_type& rowmap_in,
const entries_t& entries_in, const values_t& values_in, rowmap_t& rowmap_out,
entries_t& entries_out, values_t& values_out,
typename entries_t::const_value_type& numCols =
Kokkos::ArithTraits<typename entries_t::non_const_value_type>::max(),
SortAlgorithm option = SortAlgorithm::DEFAULT);
Produces a new CRS matrix that is sorted and has no duplicate entries. Values for duplicate entries are summed.
Template Parameters¶
- exec_space:
The Kokkos execution space to use for parallel operations.
- rowmap_t:
Type of the row map view.
- entries_t:
Type of the entries view.
- values_t:
Type of the values view.
Parameters¶
- exec:
Execution space instance.
- rowmap_in:
Input row map view of the CRS matrix.
- entries_in:
Input entries view of the CRS matrix.
- values_in:
Input values view of the CRS matrix.
- rowmap_out:
Output row map view of the CRS matrix.
- entries_out:
Output entries view of the CRS matrix.
- values_out:
Output values view of the CRS matrix.
- numCols:
Number of columns in the matrix (optional).
- option:
Sorting strategy (optional, defaults to SortAlgorithm::DEFAULT).
sort_and_merge_graph¶
template <typename exec_space, typename rowmap_t, typename entries_t>
void sort_and_merge_graph(const exec_space& exec, const typename rowmap_t::const_type& rowmap_in,
const entries_t& entries_in, rowmap_t& rowmap_out, entries_t& entries_out,
typename entries_t::const_value_type& numCols =
Kokkos::ArithTraits<typename entries_t::non_const_value_type>::max(),
SortAlgorithm option = SortAlgorithm::DEFAULT);
Produces a new CRS graph that is sorted and has no duplicate entries.
Template Parameters¶
- exec_space:
The Kokkos execution space to use for parallel operations.
- rowmap_t:
Type of the row map view.
- entries_t:
Type of the entries view.
Parameters¶
- exec:
Execution space instance.
- rowmap_in:
Input row map view of the CRS graph.
- entries_in:
Input entries view of the CRS graph.
- rowmap_out:
Output row map view of the CRS graph.
- entries_out:
Output entries view of the CRS graph.
- numCols:
Number of columns in the graph (optional).
- option:
Sorting strategy (optional, defaults to SortAlgorithm::DEFAULT).