2 #include <hmlp_internal.hpp> 6 BLIS_GEMM_KERNEL(bli_sgemm_asm_16x6,
float);
7 BLIS_GEMM_KERNEL(bli_dgemm_asm_8x6,
double);
13 const static size_t mr = 16;
14 const static size_t nr = 6;
15 const static size_t pack_mr = 16;
16 const static size_t pack_nr = 6;
17 const static size_t align_size = 32;
18 const static bool row_major =
false;
20 inline STRA_OPERATOR(
float)
const 22 printf(
"no STRA_OPERATOR implementation\n" );
30 float beta = aux->pc ? 1.0 : 0.0;
32 bli_sgemm_asm_16x6( k, &alpha, a, b, &beta, c, rs_c, cs_c, aux );
37 inline void operator()
43 float *v, inc_t rs_v, inc_t cs_v,
49 float beta = aux->pc ? 1.0 : 0.0;
52 float vtmp[ mr * nr ];
58 for (
size_t j = 0; j < aux->jb; j ++ )
59 for (
size_t i = 0; i < aux->ib; i ++ )
60 vtmp[ j * mr + i ] = v[ j * cs_v + i * rs_v ];
85 aux->ib != mr || aux->jb != nr )
88 c->Unpack( aux->m, aux->i, aux->ib, aux->n, aux->j, aux->jb, v );
98 const static size_t mr = 8;
99 const static size_t nr = 6;
100 const static size_t pack_mr = 8;
101 const static size_t pack_nr = 6;
102 const static size_t align_size = 32;
103 const static bool row_major =
false;
105 inline STRA_OPERATOR(
double)
const 107 printf(
"no STRA_OPERATOR implementation\n" );
115 double beta = aux->pc ? 1.0 : 0.0;
129 template<
typename TC>
130 inline void operator()
136 double *v, inc_t rs_v, inc_t cs_v,
142 double beta = aux->pc ? 1.0 : 0.0;
145 double vtmp[ mr * nr ];
151 for (
size_t j = 0; j < aux->jb; j ++ )
152 for (
size_t i = 0; i < aux->ib; i ++ )
153 vtmp[ j * mr + i ] = v[ j * cs_v + i * rs_v ];
178 aux->ib != mr || aux->jb != nr )
181 c->Unpack( aux->m, aux->i, aux->ib, aux->n, aux->j, aux->jb, v );
Definition: rank_k_d8x6.hpp:96
Definition: rank_k_d8x6.hpp:11
Definition: hmlp_internal.hpp:38
Definition: packing.hpp:198
GEMM_OPERATOR(float) const
Definition: rank_k_d8x6.hpp:26
GEMM_OPERATOR(double) const
Definition: rank_k_d8x6.hpp:111