Sparse matrix class using the sliced ELLPACK with parameters C, . More...
#include <forwards.h>
Public Types | |
typedef viennacl::backend::mem_handle | handle_type |
typedef scalar< typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT < ScalarT >::ResultType > | value_type |
typedef vcl_size_t | size_type |
Public Member Functions | |
sliced_ell_matrix () | |
sliced_ell_matrix (size_type num_rows, size_type num_cols, size_type num_rows_per_block_=0) | |
Standard constructor for setting the row and column sizes as well as the block size. More... | |
sliced_ell_matrix (viennacl::context ctx) | |
void | clear () |
Resets all entries in the matrix back to zero without changing the matrix size. Resets the sparsity pattern. More... | |
vcl_size_t | internal_size1 () const |
vcl_size_t | internal_size2 () const |
vcl_size_t | size1 () const |
vcl_size_t | size2 () const |
vcl_size_t | rows_per_block () const |
handle_type & | handle1 () |
const handle_type & | handle1 () const |
handle_type & | handle2 () |
const handle_type & | handle2 () const |
handle_type & | handle3 () |
const handle_type & | handle3 () const |
handle_type & | handle () |
const handle_type & | handle () const |
Friends | |
template<typename CPUMatrixT , typename ScalarT2 , typename IndexT2 > | |
void | copy (CPUMatrixT const &cpu_matrix, sliced_ell_matrix< ScalarT2, IndexT2 > &gpu_matrix) |
Sparse matrix class using the sliced ELLPACK with parameters C, .
Based on the SELL-C-sigma format provided by Kreutzer et al., 2014 Can be seen as a block-wise ELLPACK format, where C rows are accumulated into the same block for which a column-wise storage is used. Enables fully-coalesced reads from global memory.
Note: Currently is fixed to 1, since the sorting of rows
Definition at line 403 of file forwards.h.
typedef viennacl::backend::mem_handle viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle_type |
Definition at line 49 of file sliced_ell_matrix.hpp.
typedef vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::size_type |
Definition at line 51 of file sliced_ell_matrix.hpp.
typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<ScalarT>::ResultType> viennacl::sliced_ell_matrix< ScalarT, IndexT >::value_type |
Definition at line 50 of file sliced_ell_matrix.hpp.
|
inlineexplicit |
Definition at line 53 of file sliced_ell_matrix.hpp.
|
inline |
Standard constructor for setting the row and column sizes as well as the block size.
Supported values for num_rows_per_block_ are 32, 64, 128, 256. Other values may work, but are unlikely to yield good performance.
Definition at line 59 of file sliced_ell_matrix.hpp.
|
inlineexplicit |
Definition at line 66 of file sliced_ell_matrix.hpp.
|
inline |
Resets all entries in the matrix back to zero without changing the matrix size. Resets the sparsity pattern.
Definition at line 85 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 118 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 119 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 109 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 110 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 112 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 113 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 115 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 116 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 98 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 99 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 104 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 101 of file sliced_ell_matrix.hpp.
|
inline |
Definition at line 102 of file sliced_ell_matrix.hpp.
|
friend |