diff options
Diffstat (limited to 'arm_compute')
-rw-r--r-- | arm_compute/core/KernelDescriptors.h | 22 | ||||
-rw-r--r-- | arm_compute/core/Types.h | 10 |
2 files changed, 32 insertions, 0 deletions
diff --git a/arm_compute/core/KernelDescriptors.h b/arm_compute/core/KernelDescriptors.h index d9d3e1a4d8..6b4691bc83 100644 --- a/arm_compute/core/KernelDescriptors.h +++ b/arm_compute/core/KernelDescriptors.h @@ -54,6 +54,28 @@ struct FFTRadixStageKernelInfo /** Descriptor used by the GEMM kernels */ struct GEMMKernelInfo { + GEMMKernelInfo() = default; + GEMMKernelInfo( + unsigned int im, + unsigned int in, + unsigned int ik, + unsigned int idepth_output_gemm3d, + bool ireinterpret_input_as_3d, + bool ibroadcast_bias, + bool ifp_mixed_precision, + ActivationLayerInfo iactivation_info, + int inmult_transpose1xW_width, + int imult_interleave4x4_height, + GEMMLHSMatrixInfo ilhs_info, + GEMMRHSMatrixInfo irhs_info, + int32_t ina_offset, + int32_t inb_offset) + : m(im), n(in), k(ik), depth_output_gemm3d(idepth_output_gemm3d), reinterpret_input_as_3d(ireinterpret_input_as_3d), broadcast_bias(ibroadcast_bias), fp_mixed_precision(ifp_mixed_precision), + activation_info(iactivation_info), mult_transpose1xW_width(inmult_transpose1xW_width), mult_interleave4x4_height(imult_interleave4x4_height), lhs_info(ilhs_info), rhs_info(irhs_info), + a_offset(ina_offset), b_offset(inb_offset) + { + } + unsigned int m{ 0 }; /**< Number of LHS rows*/ unsigned int n{ 0 }; /**< Number of RHS columns*/ unsigned int k{ 0 }; /**< Number of LHS columns or RHS rows */ diff --git a/arm_compute/core/Types.h b/arm_compute/core/Types.h index 37a9679a21..d59bba6ff4 100644 --- a/arm_compute/core/Types.h +++ b/arm_compute/core/Types.h @@ -1964,6 +1964,11 @@ struct GEMMLowpOutputStageInfo /** GEMM LHS (Left Hand Side) matrix information */ struct GEMMLHSMatrixInfo { + GEMMLHSMatrixInfo() = default; + GEMMLHSMatrixInfo(unsigned int m, unsigned int k, unsigned int v, bool trans, bool inter) + : m0(m), k0(k), v0(v), transpose(trans), interleave(inter) + { + } unsigned int m0{ 1 }; /**< Number of rows processed by the matrix multiplication */ unsigned int k0{ 1 }; /**< Number of partial accumulations performed by the matrix multiplication */ unsigned int v0{ 1 }; /**< Number of vertical blocks of size (m0xk0) stored on the same output row */ @@ -1974,6 +1979,11 @@ struct GEMMLHSMatrixInfo /** GEMM RHS (Right Hand Side) matrix information */ struct GEMMRHSMatrixInfo { + GEMMRHSMatrixInfo() = default; + GEMMRHSMatrixInfo(unsigned int n, unsigned int k, unsigned int h, bool trans, bool inter) + : n0(n), k0(k), h0(h), transpose(trans), interleave(inter) + { + } unsigned int n0{ 1 }; /**< Number of columns processed by the matrix multiplication */ unsigned int k0{ 1 }; /**< Number of partial accumulations performed by the matrix multiplication */ unsigned int h0{ 1 }; /**< Number of horizontal blocks of size (k0xn0) stored on the same output row */ |