diff options
author | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2020-10-29 13:36:50 +0000 |
---|---|---|
committer | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2020-10-30 15:35:02 +0000 |
commit | 839e19865d4b654899d1da5cfb94304841e7f210 (patch) | |
tree | 10321574df9e263036a60689fb5fb03608b2f487 /src/core/CL/gemm/CLGEMMHelpers.h | |
parent | c4d45559b00cdbdca80296c23be5939439fbbbd0 (diff) | |
download | ComputeLibrary-839e19865d4b654899d1da5cfb94304841e7f210.tar.gz |
COMPMID-3930: Update CLGEMM heuristic for fp16. Mali-G76
- Since the GEMM kernel can now work without padding, the heuristic
requires to be fine-tuned to exploit this feature
- The heuristic affects Mali-G76 FP16 only
Change-Id: Ia430627f02131ad956ce2219b80c83c8e7cabaf2
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4284
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: SiCong Li <sicong.li@arm.com>
Diffstat (limited to 'src/core/CL/gemm/CLGEMMHelpers.h')
-rw-r--r-- | src/core/CL/gemm/CLGEMMHelpers.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/CL/gemm/CLGEMMHelpers.h b/src/core/CL/gemm/CLGEMMHelpers.h index 013c068cf7..57624673c0 100644 --- a/src/core/CL/gemm/CLGEMMHelpers.h +++ b/src/core/CL/gemm/CLGEMMHelpers.h @@ -54,6 +54,25 @@ namespace cl_gemm std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> configure_lhs_rhs_info(unsigned int m, unsigned int n, unsigned int m0, unsigned int n0, unsigned int k0, unsigned int v0, unsigned int h0, bool lhs_interleave, bool rhs_interleave, bool lhs_transpose, bool rhs_transpose, bool export_to_cl_image = false); +/** Select @ref GEMMLHSMatrixInfo and @ref GEMMRHSMatrixInfo + * + * This function accepts two pairs of GEMMLHSMatrixInfo/GEMMRHSMatrixInfo where only the first is with cl_image2d support, + * and selects the valid one validating the GEMMRHSMatrixInfo. If the validation passes, the functions will return + * the first GEMMLHSMatrixInfo/GEMMRHSMatrixInfo pair with cl_image2d support. + * + * @param[in] info_img GEMMLHSMatrixInfo/GEMMRHSMatrixInfo with cl_image2d support + * @param[in] info_buf GEMMLHSMatrixInfo/GEMMRHSMatrixInfo to fall-back if cl_image2d cannot be used + * @param[in] n Number of columns (N) in the RHS matrix not reshaped + * @param[in] k Number of rows (K) in the RHS matrix not reshaped + * @param[in] b Batch size + * @param[in] data_type Data type + * + * @return @ref GEMMLHSMatrixInfo and @ref GEMMRHSMatrixInfo + */ +std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> select_lhs_rhs_info(std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> info_img, + std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> info_buf, + unsigned int n, unsigned int k, unsigned int b, DataType data_type); + /** Update padding required to export the OpenCL buffer to OpenCL image2d * * @param[in,out] tensor ITensorInfo of the tensor required to be exported to OpenCL image2d |