33 template<
typename To,
typename Tr>
44 newargs.
_cfg =
nullptr;
45 _subgemm = gemm<To,Tr>(newargs);
48 void set_arrays(
const To *A,
const int,
const int A_batch_stride,
const int A_multi_stride,
49 const To *B,
const int ldb,
const int B_multi_stride,
50 Tr *C,
const int,
const int C_batch_stride,
const int C_multi_stride,
51 const Tr *
bias,
const int bias_multi_stride)
override {
53 _subgemm->set_arrays(A, A_batch_stride, 0, A_multi_stride,
54 B, ldb, B_multi_stride,
55 C, C_batch_stride, 0, C_multi_stride,
56 bias, bias_multi_stride);
60 return _subgemm->get_window_size();
64 _subgemm->set_nthreads(nthreads);
68 _subgemm->execute(work_range, thread_locator, threadid);
72 return _subgemm->get_working_size();
76 _subgemm->set_working_space(space);
80 return _subgemm->B_is_pretransposed();
84 return _subgemm->B_pretranspose_required();
88 return _subgemm->get_B_pretransposed_array_size();
92 _subgemm->pretranspose_B_array(buffer, B, ldb, B_multi_stride);
96 _subgemm->set_pretransposed_B_data(buffer);
102 std::string new_filter =
"gemv_batched[";
103 new_filter.append(c.
filter);
104 new_filter.append(
"]");