diff options
author | Gian Marco <gianmarco.iodice@arm.com> | 2017-11-21 10:57:50 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:41:17 +0000 |
commit | 05288a2b871ef99f544771621c3bba409b2f70df (patch) | |
tree | 21e3d2a9927ef31f6d5bcdd5523c4c8e933047a6 /src/core/CL/CLKernelLibrary.cpp | |
parent | c82799003fbfdc5bb9526ff944e41eaae23e3f03 (diff) | |
download | ComputeLibrary-05288a2b871ef99f544771621c3bba409b2f70df.tar.gz |
COMPMID-697 - Rework GEMMLowp interface on OpenCL
Reworked the interface of GemmLowp in order to make easy the integration
in Android NN
- Added support for different output stage
- Added validation for both matrix multiplication and output stage
- Added bounded relu support in the output stage
- Added in32_t bias support
- Added optimized path for vector by matrix case
This rework is required for:
- Convolution quantized
- Fully connected quantized
Change-Id: I512283d406099cf8c614dd89d0a97ed411143afc
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/110625
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com <bsgcomp@arm.com>
Diffstat (limited to 'src/core/CL/CLKernelLibrary.cpp')
-rw-r--r-- | src/core/CL/CLKernelLibrary.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/core/CL/CLKernelLibrary.cpp b/src/core/CL/CLKernelLibrary.cpp index 6cc5a9a6b5..948fe441cf 100644 --- a/src/core/CL/CLKernelLibrary.cpp +++ b/src/core/CL/CLKernelLibrary.cpp @@ -218,7 +218,6 @@ const std::map<std::string, std::string> CLKernelLibrary::_kernel_program_map = { "gemm_ma_qs8", "gemm.cl" }, { "gemm_ma_qs16", "gemm.cl" }, { "gemm_mv", "gemv.cl" }, - { "gemm_mm_interleaved_transposed_u8", "gemm.cl" }, { "gemm_mm_interleaved_transposed_f16", "gemm.cl" }, { "gemm_mm_interleaved_transposed_f32_midgard", "gemm.cl" }, { "gemm_mm_interleaved_transposed_f32_bifrost", "gemm.cl" }, @@ -233,6 +232,12 @@ const std::map<std::string, std::string> CLKernelLibrary::_kernel_program_map = { "gemm_transpose1x16", "gemm.cl" }, { "gemm_transpose1x8", "gemm.cl" }, { "gemm_transpose1x4", "gemm.cl" }, + { "gemmlowp_matrix_a_reduction", "gemmlowp.cl" }, + { "gemmlowp_matrix_b_reduction", "gemmlowp.cl" }, + { "gemmlowp_mm", "gemmlowp.cl" }, + { "gemmlowp_mm_interleaved_transposed", "gemmlowp.cl" }, + { "gemmlowp_offset_contribution", "gemmlowp.cl" }, + { "gemmlowp_output_stage_quantize_down", "gemmlowp.cl" }, { "harris_score_3x3", "harris_corners.cl" }, { "harris_score_5x5", "harris_corners.cl" }, { "harris_score_7x7", "harris_corners.cl" }, @@ -482,6 +487,10 @@ const std::map<std::string, std::string> CLKernelLibrary::_program_source_map = #include "./cl_kernels/gemm.clembed" }, { + "gemmlowp.cl", +#include "./cl_kernels/gemmlowp.clembed" + }, + { "gemv.cl", #include "./cl_kernels/gemv.clembed" }, |