24.02.1
|
#include <gemm_hybrid_indirect.hpp>
Public Member Functions | |
GemmHybridIndirect (GemmHybridIndirect &)=delete | |
GemmHybridIndirect & | operator= (GemmHybridIndirect &)=delete |
GemmHybridIndirect (const GemmArgs &args, const OutputStage &os) | |
GemmHybridIndirect (const GemmArgs &args) | |
ndrange_t | get_window_size () const override |
bool | supports_dynamic_scheduling () const override |
void | execute (const ndcoord_t &work_range, const ndcoord_t &, int) override |
Main execute member fucntion. More... | |
bool | B_is_pretransposed () const override |
bool | B_pretranspose_required () const override |
size_t | get_B_pretransposed_array_size () const override |
size_t | get_B_pretranspose_window_size () const override |
void | requantize_bias (void *in_buffer, const To *B, const int ldb, const int B_multi_stride) override |
void | pretranspose_B_array (void *in_buffer, const To *B, const int ldb, const int B_multi_stride) override |
void | pretranspose_B_array_part (void *in_buffer, const To *B, const int ldb, const int B_multi_stride, size_t start, size_t end) override |
void | set_pretransposed_B_data (void *in_buffer) override |
void | set_quantized_bias (const int32_t *bias, size_t bias_multi_stride) override |
void | set_indirect_parameters (size_t string_len, const To *const *const *ptr) override |
void | set_convolution_parameters (ConvolutionParameters parms) override |
GemmConfig | get_config () override |
Public Member Functions inherited from GemmCommon< To, Tr > | |
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 |
void | pretranspose_B_array_generic (void *out, const void *in, const int row_stride, const int multi_stride) override |
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 |
void | set_indirect_parameters_generic (size_t sz, const void *const *const *ptr) override |
Public Member Functions inherited from IGemmCommon | |
virtual void | set_nthreads (int) |
virtual size_t | get_working_size () const |
virtual void | set_working_space (void *) |
virtual | ~IGemmCommon () |
Static Public Member Functions | |
template<typename perf_type > | |
static uint64_t | estimate_cycles (const GemmArgs &args, const OutputStage &os={}) |
Definition at line 264 of file gemm_hybrid_indirect.hpp.
|
delete |
|
inline |
Definition at line 389 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_cfg.
|
inline |
Definition at line 403 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_cfg.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 591 of file gemm_hybrid_indirect.hpp.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 595 of file gemm_hybrid_indirect.hpp.
|
inlinestatic |
Definition at line 751 of file gemm_hybrid_indirect.hpp.
|
inlineoverridevirtual |
Main execute member fucntion.
[in] | work_range | specifies the range of work we want to be computed, total range defined by get_window_size() |
[in] | thread_locator | where are we inside of the thread space |
[in] | threadid | a unique threadid |
Implements IGemmCommon.
Definition at line 427 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_act, GemmArgs::_ci, GemmArgs::_indirect_input, GemmArgs::_Ksections, GemmArgs::_Ksize, GemmArgs::_Msize, GemmArgs::_nbatches, GemmArgs::_Nsize, NDCoordinate< N >::get_position(), NDCoordinate< N >::get_position_end(), NDRange< D >::iterator(), offset(), arm_gemm::roundup(), arm_compute::test::validation::run(), sections, and strategy.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 617 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_nmulti, GemmArgs::_Nsize, and arm_gemm::iceildiv().
Referenced by GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::pretranspose_B_array(), and GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::pretranspose_B_array_part().
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 599 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_Msize, GemmArgs::_nbatches, GemmArgs::_nmulti, GemmArgs::_Nsize, and arm_gemm::roundup().
|
inlineoverridevirtual |
Implements IGemmCommon.
Definition at line 818 of file gemm_hybrid_indirect.hpp.
References GemmConfig::filter, arm_gemm::GEMM_HYBRID, arm_gemm::get_weight_format(), GemmConfig::inner_block_size, GemmConfig::method, GemmConfig::outer_block_size, and GemmConfig::weight_format.
|
inlineoverridevirtual |
Implements IGemmCommon.
Definition at line 417 of file gemm_hybrid_indirect.hpp.
References NDRange< D >::total_size().
|
delete |
|
inlineoverridevirtual |
Reimplemented from GemmCommon< To, Tr >.
Definition at line 634 of file gemm_hybrid_indirect.hpp.
References GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::get_B_pretranspose_window_size(), and GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::pretranspose_B_array_part().
|
inlineoverridevirtual |
Reimplemented from GemmCommon< To, Tr >.
Definition at line 638 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_ci, GemmArgs::_Ksections, GemmArgs::_Ksize, GemmArgs::_nmulti, GemmArgs::_Nsize, arm_compute::mlgo::parser::end(), GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::get_B_pretranspose_window_size(), arm_gemm::iceildiv(), GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::requantize_bias(), arm_gemm::roundup(), and strategy.
Referenced by GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::pretranspose_B_array().
|
inlineoverridevirtual |
Reimplemented from GemmCommon< To, Tr >.
Definition at line 621 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_Ksections, GemmArgs::_Ksize, GemmArgs::_nmulti, GemmArgs::_Nsize, and arm_gemm::compute_col_sums().
Referenced by GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::pretranspose_B_array_part().
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 813 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_Ksize, and ConvolutionParameters::input_channels.
|
inlineoverridevirtual |
Reimplemented from GemmCommon< To, Tr >.
Definition at line 808 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_Ksize.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 740 of file gemm_hybrid_indirect.hpp.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 799 of file gemm_hybrid_indirect.hpp.
References Requantize32::bias, bias, and Requantize32::bias_multi_stride.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 422 of file gemm_hybrid_indirect.hpp.