2 #include <hmlp_internal.hpp> 6 BLIS_GEMM_KERNEL(bli_sgemm_opt_12x32_l2,
float);
7 BLIS_GEMM_KERNEL(bli_dgemm_opt_6x32_l2,
double);
12 const static size_t mr = 32;
13 const static size_t nr = 12;
14 const static size_t pack_mr = 32;
15 const static size_t pack_nr = 12;
16 const static size_t align_size = 64;
17 const static bool row_major =
true;
19 inline STRA_OPERATOR(
float)
const 21 printf(
"no STRA_OPERATOR implementation\n" );
30 float beta = aux->pc ? 1.0 : 0.0;
42 bli_sgemm_opt_12x32_l2
55 inline void operator()
61 float *v, inc_t rs_v, inc_t cs_v,
68 float beta = aux->pc ? 1.0 : 0.0;
71 float vtmp[ mr * nr ];
77 for (
size_t j = 0; j < aux->jb; j ++ )
78 for (
size_t i = 0; i < aux->ib; i ++ )
79 vtmp[ j * mr + i ] = v[ j * cs_v + i * rs_v ];
98 bli_sgemm_opt_12x32_l2
114 aux->ib != mr || aux->jb != nr )
116 c->Unpack( aux->m, aux->i, aux->ib, aux->n, aux->j, aux->jb, v );
131 const static size_t mr = 32;
132 const static size_t nr = 6;
133 const static size_t pack_mr = 32;
134 const static size_t pack_nr = 6;
135 const static size_t align_size = 64;
136 const static bool row_major =
true;
138 inline STRA_OPERATOR(
double)
const 140 printf(
"no STRA_OPERATOR implementation\n" );
149 double beta = aux->pc ? 1.0 : 0.0;
161 bli_dgemm_opt_6x32_l2
173 template<
typename TC>
174 inline void operator()
180 double *v, inc_t rs_v, inc_t cs_v,
187 double beta = aux->pc ? 1.0 : 0.0;
190 double vtmp[ mr * nr ];
196 for (
size_t j = 0; j < aux->jb; j ++ )
197 for (
size_t i = 0; i < aux->ib; i ++ )
198 vtmp[ j * mr + i ] = v[ j * cs_v + i * rs_v ];
217 bli_dgemm_opt_6x32_l2
233 aux->ib != mr || aux->jb != nr )
236 c->Unpack( aux->m, aux->i, aux->ib, aux->n, aux->j, aux->jb, v );
Definition: rank_k_d12x16.hpp:10
Definition: rank_k_d6x32.hpp:125
GEMM_OPERATOR(double) const
Definition: rank_k_d6x32.hpp:144
Definition: hmlp_internal.hpp:38
Definition: packing.hpp:198
GEMM_OPERATOR(float) const
Definition: rank_k_d6x32.hpp:25