24 #ifndef ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H 25 #define ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H 33 class CLCompileContext;
37 class CLDepthConvertLayerKernel;
38 class CLGEMMLowpMatrixMultiplyNativeKernel;
39 class CLGEMMLowpMatrixMultiplyReshapedOnlyRHSKernel;
40 class CLGEMMLowpOffsetContributionKernel;
41 class CLGEMMLowpOffsetContributionOutputStageKernel;
42 class CLGEMMLowpMatrixAReductionKernel;
43 class CLGEMMLowpMatrixBReductionKernel;
44 class CLGEMMReshapeRHSMatrixKernel;
120 std::unique_ptr<CLDepthConvertLayerKernel> _weights_to_qasymm8;
121 std::unique_ptr<CLGEMMLowpMatrixMultiplyNativeKernel> _mm_native_kernel;
122 std::unique_ptr<CLGEMMLowpMatrixMultiplyReshapedOnlyRHSKernel> _mm_reshaped_only_rhs_kernel;
123 std::unique_ptr<CLGEMMReshapeRHSMatrixKernel> _mtx_b_reshape_kernel;
124 std::unique_ptr<CLGEMMLowpMatrixAReductionKernel> _mtx_a_reduction_kernel;
125 std::unique_ptr<CLGEMMLowpMatrixBReductionKernel> _mtx_b_reduction_kernel;
126 std::unique_ptr<CLGEMMLowpOffsetContributionKernel> _offset_contribution_kernel;
127 std::unique_ptr<CLGEMMLowpOffsetContributionOutputStageKernel> _offset_contribution_output_stage_kernel;
135 CLTensor _gemm_output_stage_multipliers;
145 bool _is_gemm_reshaped;
146 bool _reshape_b_only_on_first_run;
148 bool _run_output_stage;
149 bool _convert_to_qasymm8;
150 bool _run_offset_contribution;
Base class for all functions.
void prepare() override
Prepare the function for executing.
Store the tensor's metadata.
void configure(const ICLTensor *a, const ICLTensor *b, const ICLTensor *c, ICLTensor *output, const GEMMInfo &gemm_info=GEMMInfo())
Initialise the kernel's inputs, output.
void run() override
Run the kernels contained in the function.
Copyright (c) 2017-2021 Arm Limited.
static Status validate(const ITensorInfo *a, const ITensorInfo *b, const ITensorInfo *c, const ITensorInfo *output, const GEMMInfo &gemm_info=GEMMInfo())
Static function to check if given info will lead to a valid configuration of CLGEMMLowpMatrixMultiply...
~CLGEMMLowpMatrixMultiplyCore()
Default destructor.
CLGEMMLowpMatrixMultiplyCore(std::shared_ptr< IMemoryManager > memory_manager=nullptr)
Constructor.
Interface for OpenCL tensor.
CLGEMMLowpMatrixMultiplyCore & operator=(const CLGEMMLowpMatrixMultiplyCore &)=delete
Prevent instances of this class from being copied (As this class contains pointers) ...
Basic function to execute GEMMLowpMatrixMultiplyCore on OpenCL.
Basic implementation of the OpenCL tensor interface.