HMLP: High-performance Machine Learning Primitives
rank_k_opt_s12x32 Struct Reference

Public Member Functions

 STRA_OPERATOR (float) const
 
 GEMM_OPERATOR (float) const
 
template<typename TC >
void operator() (dim_t k, float *a, float *b, TC *c, float *v, inc_t rs_v, inc_t cs_v, aux_s< float, float, TC, float > *aux)
 
 STRA_OPERATOR (float) const
 
 GEMM_OPERATOR (float) const
 
template<typename TC >
void operator() (dim_t k, float *a, float *b, TC *c, float *v, inc_t rs_v, inc_t cs_v, aux_s< float, float, TC, float > *aux)
 

Static Public Attributes

static const size_t mr = 32
 
static const size_t nr = 12
 
static const size_t pack_mr = 32
 
static const size_t pack_nr = 12
 
static const size_t align_size = 64
 
static const bool row_major = true
 

Member Function Documentation

rank_k_opt_s12x32::GEMM_OPERATOR ( float  ) const
inline

if this is the first kc iteration then beta = 1.0

invoke blis kernel

rank_k_opt_s12x32::GEMM_OPERATOR ( float  ) const
inline

if this is the first kc iteration then beta = 1.0

invoke blis kernel

template<typename TC >
void rank_k_opt_s12x32::operator() ( dim_t  k,
float *  a,
float *  b,
TC *  c,
float *  v,
inc_t  rs_v,
inc_t  cs_v,
aux_s< float, float, TC, float > *  aux 
)
inline

if this is the first kc iteration then beta = 1.0

allocate temporary buffer

invoke blis kernel

If TC is not MatrixLike<PACK_MR,double,double>, we treat this the same as the edge case.

template<typename TC >
void rank_k_opt_s12x32::operator() ( dim_t  k,
float *  a,
float *  b,
TC *  c,
float *  v,
inc_t  rs_v,
inc_t  cs_v,
aux_s< float, float, TC, float > *  aux 
)
inline

if this is the first kc iteration then beta = 1.0

allocate temporary buffer

invoke blis kernel

If TC is not MatrixLike<PACK_MR,double,double>, we treat this the same as the edge case.


The documentation for this struct was generated from the following files: