Compute Library
 23.08
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 pretranspose_B_array_part (void *out, const To *in, const int row_stride, const int multi_stride, size_t, size_t)
 
void pretranspose_B_array_part_generic (void *out, const void *in, const int row_stride, const int multi_stride, size_t start, size_t end) 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 size_t get_B_pretranspose_window_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 169 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 231 of file gemm_common.hpp.

232  {
233  pretranspose_B_array(out, static_cast<const To *>(in), row_stride, multi_stride);
234  }

◆ pretranspose_B_array_part()

virtual void pretranspose_B_array_part ( void *  out,
const To *  in,
const int  row_stride,
const int  multi_stride,
size_t  ,
size_t   
)
inlinevirtual

◆ pretranspose_B_array_part_generic()

void pretranspose_B_array_part_generic ( void *  out,
const void *  in,
const int  row_stride,
const int  multi_stride,
size_t  start,
size_t  end 
)
inlineoverridevirtual

Implements IGemmCommon.

Definition at line 245 of file gemm_common.hpp.

246  {
247  pretranspose_B_array_part(out, static_cast<const To *>(in), row_stride, multi_stride, start, end);
248  }

◆ 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 GemvBatched< To, Tr >, and QuantizeWrapper< To, Tr, Tgemm >.

Definition at line 189 of file gemm_common.hpp.

193  {
194  _Aptr = A;
195  _lda = lda;
196  _A_batch_stride = A_batch_stride;
197  _A_multi_stride = A_multi_stride;
198  _Bptr = B;
199  _ldb = ldb;
200  _B_multi_stride = B_multi_stride;
201  _Cptr = C;
202  _ldc = ldc;
203  _C_batch_stride = C_batch_stride;
204  _C_multi_stride = C_multi_stride;
205  _bias = bias;
206  _bias_multi_stride = bias_multi_stride;
207  }

Referenced by QuantizeWrapper< To, Tr, Tgemm >::set_arrays(), and GemmCommon< TypeInput, TypeOutput >::set_arrays_generic().

◆ 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 210 of file gemm_common.hpp.

214  {
215  set_arrays(static_cast<const To *>(A), lda, A_batch_stride, A_multi_stride,
216  static_cast<const To *>(B), ldb, B_multi_stride,
217  static_cast<Tr *>(C), ldc, C_batch_stride, C_multi_stride,
218  static_cast<const Tr *>(bias), bias_multi_stride);
219  }

◆ set_indirect_parameters()

◆ set_indirect_parameters_generic()

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

Reimplemented from IGemmCommon.

Definition at line 255 of file gemm_common.hpp.

256  {
257  set_indirect_parameters(sz, reinterpret_cast<const To *const *const *>(ptr));
258  }

The documentation for this class was generated from the following file:
arm_gemm::GemmCommon::pretranspose_B_array
virtual void pretranspose_B_array(void *, const To *, const int, const int)
Definition: gemm_common.hpp:228
arm_compute::Channel::B
@ B
Blue channel.
arm_gemm::GemmCommon::set_indirect_parameters
virtual void set_indirect_parameters(size_t, const To *const *const *)
Definition: gemm_common.hpp:251
arm_gemm::GemmCommon::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)
Definition: gemm_common.hpp:189
bias
const int32_t * bias
Definition: working_space.hpp:322
arm_gemm::GemmCommon::pretranspose_B_array_part
virtual void pretranspose_B_array_part(void *out, const To *in, const int row_stride, const int multi_stride, size_t, size_t)
Definition: gemm_common.hpp:240
arm_compute::Channel::A
@ A
Alpha channel.
arm_compute::mlgo::parser::end
void end(TokenStream &in, bool &valid)
Definition: MLGOParser.cpp:290