21.08
|
#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 |
void | pretranspose_B_array (void *in_buffer, const To *B, const int ldb, const int B_multi_stride) 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 |
![]() | |
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 | set_indirect_parameters_generic (size_t sz, const void *const *const *ptr) override |
![]() | |
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 185 of file gemm_hybrid_indirect.hpp.
|
delete |
|
inline |
Definition at line 310 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_cfg.
|
inline |
Definition at line 324 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_cfg.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 504 of file gemm_hybrid_indirect.hpp.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 508 of file gemm_hybrid_indirect.hpp.
|
inlinestatic |
Definition at line 617 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_ci, GemmArgs::_Msize, GemmArgs::_nbatches, GemmArgs::_nmulti, GemmArgs::_Nsize, Requantize32::b_offset, PerformanceParameters::kernel_macs_cycle, PerformanceParameters::merge_bytes_cycle, PerformanceParameters::prepare_bytes_cycle, and arm_gemm::roundup().
|
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 348 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(), and sections.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 512 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 684 of file gemm_hybrid_indirect.hpp.
References GemmConfig::filter, arm_gemm::GEMM_HYBRID, GemmConfig::inner_block_size, GemmConfig::method, and GemmConfig::outer_block_size.
|
inlineoverridevirtual |
Implements IGemmCommon.
Definition at line 338 of file gemm_hybrid_indirect.hpp.
References NDRange< D >::total_size().
|
delete |
|
inlineoverridevirtual |
Reimplemented from GemmCommon< To, Tr >.
Definition at line 526 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_ci, GemmArgs::_Ksections, GemmArgs::_Ksize, GemmArgs::_nmulti, GemmArgs::_Nsize, arm_gemm::compute_col_sums(), and arm_gemm::roundup().
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 679 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_Ksize, and ConvolutionParameters::input_channels.
|
inlineoverridevirtual |
Reimplemented from GemmCommon< To, Tr >.
Definition at line 674 of file gemm_hybrid_indirect.hpp.
References GemmArgs::_Ksize.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 606 of file gemm_hybrid_indirect.hpp.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 665 of file gemm_hybrid_indirect.hpp.
References Requantize32::bias, and Requantize32::bias_multi_stride.
|
inlineoverridevirtual |
Reimplemented from IGemmCommon.
Definition at line 343 of file gemm_hybrid_indirect.hpp.