24 #ifndef ARM_COMPUTE_NEGEMMLOWPMATRIXMULTIPLYCORE_H 25 #define ARM_COMPUTE_NEGEMMLOWPMATRIXMULTIPLYCORE_H 39 class NEConvertQuantizedSignednessKernel;
40 class NEConvertQuantizedSignednessKernel;
41 class NEGEMMInterleave4x4Kernel;
42 class NEGEMMLowpMatrixMultiplyKernel;
43 class NEGEMMLowpOffsetContributionKernel;
44 class NEGEMMLowpOffsetContributionOutputStageKernel;
45 class NEGEMMLowpMatrixAReductionKernel;
46 class NEGEMMLowpMatrixBReductionKernel;
47 class NEGEMMTranspose1xWKernel;
48 class NEGEMMAssemblyDispatch;
119 std::unique_ptr<NEGEMMAssemblyDispatch> _asm_glue;
120 std::unique_ptr<NEGEMMLowpMatrixMultiplyKernel> _mm_kernel;
121 std::unique_ptr<NEGEMMInterleave4x4Kernel> _mtx_a_reshape_kernel;
122 std::unique_ptr<NEGEMMTranspose1xWKernel> _mtx_b_reshape_kernel;
123 std::unique_ptr<NEGEMMLowpMatrixAReductionKernel> _mtx_a_reduction_kernel;
124 std::unique_ptr<NEGEMMLowpMatrixBReductionKernel> _mtx_b_reduction_kernel;
125 std::unique_ptr<NEGEMMLowpOffsetContributionKernel> _offset_contribution_kernel;
126 std::unique_ptr<NEGEMMLowpOffsetContributionOutputStageKernel> _offset_contribution_output_stage_kernel;
128 std::unique_ptr<NEConvertQuantizedSignednessKernel> _convert_to_signed_asymm;
129 std::unique_ptr<NEConvertQuantizedSignednessKernel> _convert_from_signed_asymm;
142 bool _run_vector_matrix_multiplication;
144 bool _fused_assembly_path;
145 bool _reshape_b_only_on_first_run;
147 bool _fuse_output_stage;
148 bool _run_activation;
149 bool _flip_signedness;
void prepare() override
Prepare the function for executing.
Base class for all functions.
NEGEMMLowpMatrixMultiplyCore(std::shared_ptr< IMemoryManager > memory_manager=nullptr, IWeightsManager *weights_manager=nullptr)
Constructor.
Store the tensor's metadata.
Interface for Neon tensor.
Copyright (c) 2017-2021 Arm Limited.
void configure(const ITensor *a, const ITensor *b, const ITensor *c, ITensor *output, const GEMMInfo &gemm_info=GEMMInfo())
Initialise the kernel's inputs, output.
void run() override
Run the kernels contained in the function.
Basic implementation of the tensor interface.
Weights manager interface to handle weights transformations.
Basic function to run cpu::kernels::CpuActivationKernel.
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 NEGEMMLowpMatrixMultiply...
NEGEMMLowpMatrixMultiplyCore & operator=(const NEGEMMLowpMatrixMultiplyCore &)=delete
Prevent instances of this class from being copied (As this class contains pointers) ...
Basic function to execute GEMMLowpMatrixMultiplyCore on Neon.
~NEGEMMLowpMatrixMultiplyCore()
Default destructor.