Compute Library
 21.11
GemmCommon< To, Tr > Class Template Reference

#include <gemm_common.hpp>

Collaboration diagram for GemmCommon< To, Tr >:
[legend]

Public Member Functions

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)
 
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 requantize_bias (void *, const To *, const int, const int)
 
virtual void pretranspose_B_array (void *, const To *, const int, const int)
 
void pretranspose_B_array_generic (void *out, const void *in, const int row_stride, const int multi_stride) override
 
virtual void set_indirect_parameters (size_t, const To *const *const *)
 
void set_indirect_parameters_generic (size_t sz, const void *const *const *ptr) override
 
- Public Member Functions inherited from IGemmCommon
virtual ndrange_t get_window_size () const =0
 
virtual void set_nthreads (int)
 
virtual bool supports_dynamic_scheduling () const
 
virtual void execute (const ndcoord_t &work_range, const ndcoord_t &thread_locator, int threadid)=0
 Main execute member fucntion. More...
 
virtual size_t get_working_size () const
 
virtual void set_working_space (void *)
 
virtual bool B_is_pretransposed () const
 
virtual bool B_pretranspose_required () const
 
virtual size_t get_B_pretransposed_array_size () const
 
virtual void set_pretransposed_B_data (void *)
 
virtual void set_quantized_bias (const int32_t *, size_t)
 
virtual void set_convolution_parameters (ConvolutionParameters)
 
virtual GemmConfig get_config ()=0
 
virtual ~IGemmCommon ()
 

Detailed Description

template<typename To, typename Tr>
class arm_gemm::GemmCommon< To, Tr >

Definition at line 161 of file gemm_common.hpp.

Member Function Documentation

◆ pretranspose_B_array()

◆ pretranspose_B_array_generic()

void pretranspose_B_array_generic ( void *  out,
const void *  in,
const int  row_stride,
const int  multi_stride 
)
inlineoverridevirtual

Implements IGemmCommon.

Definition at line 223 of file gemm_common.hpp.

224  {
225  pretranspose_B_array(out, static_cast<const To *>(in), row_stride, multi_stride);
226  }
virtual void pretranspose_B_array(void *, const To *, const int, const int)

◆ requantize_bias()

◆ set_arrays()

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 
)
inlinevirtual

Reimplemented in QuantizeWrapper< To, Tr, Tgemm >, and GemvBatched< To, Tr >.

Definition at line 181 of file gemm_common.hpp.

Referenced by QuantizeWrapper< To, Tr, Tgemm >::set_arrays().

185  {
186  _Aptr = A;
187  _lda = lda;
188  _A_batch_stride = A_batch_stride;
189  _A_multi_stride = A_multi_stride;
190  _Bptr = B;
191  _ldb = ldb;
192  _B_multi_stride = B_multi_stride;
193  _Cptr = C;
194  _ldc = ldc;
195  _C_batch_stride = C_batch_stride;
196  _C_multi_stride = C_multi_stride;
197  _bias = bias;
198  _bias_multi_stride = bias_multi_stride;
199  }

◆ set_arrays_generic()

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 
)
inlineoverridevirtual

Implements IGemmCommon.

Definition at line 202 of file gemm_common.hpp.

206  {
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);
211  }
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)

◆ set_indirect_parameters()

virtual void set_indirect_parameters ( size_t  ,
const To *const *const *   
)
inlinevirtual

◆ set_indirect_parameters_generic()

void set_indirect_parameters_generic ( size_t  sz,
const void *const *const *  ptr 
)
inlineoverridevirtual

Reimplemented from IGemmCommon.

Definition at line 233 of file gemm_common.hpp.

234  {
235  set_indirect_parameters(sz, reinterpret_cast<const To *const *const *>(ptr));
236  }
virtual void set_indirect_parameters(size_t, const To *const *const *)

The documentation for this class was generated from the following file: