54 virtual void set_arrays_generic(
const void *A,
const int lda,
const int A_batch_stride,
const int A_multi_stride,
55 const void *B,
const int ldb,
const int B_multi_stride,
56 void *C,
const int ldc,
const int C_batch_stride,
const int C_multi_stride,
57 const void *bias,
const int bias_multi_stride) = 0;
160 template <
typename To,
typename Tr>
164 const To *_Aptr =
nullptr;
166 int _A_batch_stride = 0;
167 int _A_multi_stride = 0;
168 const To *_Bptr =
nullptr;
170 int _B_multi_stride = 0;
173 int _C_batch_stride = 0;
174 int _C_multi_stride = 0;
175 const Tr *_bias =
nullptr;
176 int _bias_multi_stride = 0;
181 virtual void set_arrays(
const To *A,
const int lda,
const int A_batch_stride,
const int A_multi_stride,
182 const To *B,
const int ldb,
const int B_multi_stride,
183 Tr *C,
const int ldc,
const int C_batch_stride,
const int C_multi_stride,
184 const Tr *bias,
const int bias_multi_stride)
188 _A_batch_stride = A_batch_stride;
189 _A_multi_stride = A_multi_stride;
192 _B_multi_stride = B_multi_stride;
195 _C_batch_stride = C_batch_stride;
196 _C_multi_stride = C_multi_stride;
198 _bias_multi_stride = bias_multi_stride;
202 void set_arrays_generic(
const void *A,
const int lda,
const int A_batch_stride,
const int A_multi_stride,
203 const void *B,
const int ldb,
const int B_multi_stride,
204 void *C,
const int ldc,
const int C_batch_stride,
const int C_multi_stride,
205 const void *bias,
const int bias_multi_stride)
override 207 set_arrays(static_cast<const To *>(A), lda, A_batch_stride, A_multi_stride,
208 static_cast<const To *>(B), ldb, B_multi_stride,
209 static_cast<Tr *>(C), ldc, C_batch_stride, C_multi_stride,
210 static_cast<const Tr *>(bias), bias_multi_stride);
222 pretranspose_B_array(out, static_cast<const To *>(in), row_stride, multi_stride);
232 set_indirect_parameters(sz, reinterpret_cast<const To *const *const *>(ptr));
virtual void set_indirect_parameters(size_t, const To *const *const *)
virtual void pretranspose_B_array(void *, const To *, const int, const int)
void set_indirect_parameters_generic(size_t sz, const void *const *const *ptr) override
virtual void pretranspose_B_array_generic(void *, const void *, const int, const int)=0
virtual void set_indirect_parameters_generic(size_t, const void *const *const *)
virtual void execute(const ndcoord_t &work_range, const ndcoord_t &thread_locator, int threadid)=0
Main execute member fucntion.
virtual void set_working_space(void *)
virtual void set_quantized_bias(const int32_t *, size_t)
virtual bool B_pretranspose_required() const
virtual void set_pretransposed_B_data(void *)
void pretranspose_B_array_generic(void *out, const void *in, const int row_stride, const int multi_stride) override
virtual bool B_is_pretransposed() const
virtual size_t get_B_pretransposed_array_size() const
virtual size_t get_working_size() const
virtual void set_nthreads(int)
virtual GemmConfig get_config()=0
void set_arrays_generic(const void *A, const int lda, const int A_batch_stride, const int A_multi_stride, const void *B, const int ldb, const int B_multi_stride, void *C, const int ldc, const int C_batch_stride, const int C_multi_stride, const void *bias, const int bias_multi_stride) override
virtual void set_arrays(const To *A, const int lda, const int A_batch_stride, const int A_multi_stride, const To *B, const int ldb, const int B_multi_stride, Tr *C, const int ldc, const int C_batch_stride, const int C_multi_stride, const Tr *bias, const int bias_multi_stride)
virtual bool supports_dynamic_scheduling() const
virtual ndrange_t get_window_size() const =0
NDCoordinate builds upon a range, but specifies a starting position in addition to a size which it in...
virtual void set_convolution_parameters(ConvolutionParameters)
virtual void set_arrays_generic(const void *A, const int lda, const int A_batch_stride, const int A_multi_stride, const void *B, const int ldb, const int B_multi_stride, void *C, const int ldc, const int C_batch_stride, const int C_multi_stride, const void *bias, const int bias_multi_stride)=0