MatMulParams
#include <popsparse/MatMulParams.hpp>
Definitions for sparse matrix multiply operations.
- 
namespace popsparse
- Support for sparse matrices. - 
namespace dynamic
- Support for dynamic sparse matrices. - Functions - 
std::ostream &operator<<(std::ostream&, const MatMulParams&)
 - 
class MatMulParams
- Matrix multiplication parameters - These are the parameters which define a matrix multiplication with one sparse operand (always the left-hand operand) and one dense operand. - Equivalent dense multiplication for given parameters is as follows: - [groups][m][k] * [groups][k][n] = [groups][m][n] - 
static MatMulParams createWithNzRatio(const SparsityParams &sparsityParams, double nzRatio, std::size_t groups, std::size_t m, std::size_t k, std::size_t n)
 - 
static MatMulParams createWithNumNonZeroValues(const SparsityParams &sparsityParams, std::size_t numNonZeroElems, std::size_t groups, std::size_t m, std::size_t k, std::size_t n)
 - 
inline const SparsityParams &getSparsityParams() const
 - 
double getNzRatio() const
 - 
friend bool operator<(const MatMulParams &a, const MatMulParams &b)
 - 
friend bool operator==(const MatMulParams &a, const MatMulParams &b)
 - 
friend bool operator!=(const MatMulParams &a, const MatMulParams &b)
 
- 
static MatMulParams createWithNzRatio(const SparsityParams &sparsityParams, double nzRatio, std::size_t groups, std::size_t m, std::size_t k, std::size_t n)
 
- 
std::ostream &operator<<(std::ostream&, const MatMulParams&)
 - 
namespace static_
- Functions - 
std::ostream &operator<<(std::ostream&, const MatMulParams&)
 - 
class MatMulParams
- Matrix multiplication parameters - These are the parameters which define a matrix multiplication with one sparse operand and one dense operand. - Equivalent dense multiplication for given parameters is as follows when created as sparse-dense using static_::MatMulParams::createForSparseDense - [groups][m][k] * [groups][k][n] = [groups][m][n] - Equivalent dense multiplication for given parameters is as follows when created as a dense-sparse using static_::MatMulParams::createForDenseSparse - [groups][n][k] * [groups][k][m] = [groups][n][m] - 
static MatMulParams createForSparseDense(std::size_t groups, std::size_t m, std::size_t k, std::size_t n)
- Create matrix multiplication parameters for sparse * dense yielding a dense result. - [groups][m][k] * [groups][k][n] = [groups][m][n] - sparse * dense = dense 
 - 
static MatMulParams createForDenseSparse(std::size_t groups, std::size_t n, std::size_t k, std::size_t m)
- Create matrix multiplication parameters for sparse * dense yielding a dense result. - [groups][n][k] * [groups][k][m] = [groups][n][m] - dense * sparse = dense 
 - 
inline bool isTransposed() const
 - 
friend bool operator<(const MatMulParams &a, const MatMulParams &b)
 - 
friend bool operator==(const MatMulParams &a, const MatMulParams &b)
 - 
friend bool operator!=(const MatMulParams &a, const MatMulParams &b)
 
- 
static MatMulParams createForSparseDense(std::size_t groups, std::size_t m, std::size_t k, std::size_t n)
 
- 
std::ostream &operator<<(std::ostream&, const MatMulParams&)
 
- 
namespace dynamic