24 #ifndef ARM_COMPUTE_CL_GEMMLOWP_MATRIXMULTIPLY_CORE_H
25 #define ARM_COMPUTE_CL_GEMMLOWP_MATRIXMULTIPLY_CORE_H
42 class ClGemmLowpMatrixMultiplyNativeKernel;
43 class ClGemmLowpMatrixMultiplyReshapedOnlyRhsKernel;
44 class ClGemmLowpMatrixMultiplyReshapedOnlyRhsMMULKernel;
45 class ClGemmReshapeRhsMatrixKernel;
46 class ClGemmLowpMatrixAReductionKernel;
47 class ClGemmLowpMatrixBReductionKernel;
48 class ClGemmLowpOffsetContributionKernel;
49 class ClGemmLowpOffsetContributionOutputStageKernel;
134 std::unique_ptr<kernels::ClCastKernel> _weights_to_qasymm8;
135 std::unique_ptr<kernels::ClGemmLowpMatrixMultiplyNativeKernel> _mm_native_kernel;
136 std::unique_ptr<kernels::ClGemmLowpMatrixMultiplyReshapedOnlyRhsKernel> _mm_reshaped_only_rhs_kernel;
137 std::unique_ptr<kernels::ClGemmLowpMatrixMultiplyReshapedOnlyRhsMMULKernel> _mm_reshaped_only_rhs_mmul_kernel;
138 std::unique_ptr<kernels::ClGemmReshapeRhsMatrixKernel> _mtx_b_reshape_kernel;
139 std::unique_ptr<kernels::ClGemmLowpMatrixAReductionKernel> _mtx_a_reduction_kernel;
140 std::unique_ptr<kernels::ClGemmLowpMatrixBReductionKernel> _mtx_b_reduction_kernel;
141 std::unique_ptr<kernels::ClGemmLowpOffsetContributionKernel> _offset_contribution_kernel;
142 std::unique_ptr<kernels::ClGemmLowpOffsetContributionOutputStageKernel> _offset_contribution_output_stage_kernel;
153 int32_t _a_offset{0};
154 int32_t _b_offset{0};
155 bool _reshape_b_only_on_first_run{
false};
156 bool _run_output_stage{
false};
157 bool _convert_to_qasymm8{
false};
158 bool _run_offset_contribution{
false};
159 bool _is_prepared{
false};