Fix the OpenCL convolution layer heuristic for int8
- Call GEMM-based convolution rather than Direct convolution for
quantized data types
Resolves COMPMID-4497
Change-Id: Idde5808b8a9de69c5196c56538520c0e3d52ba76
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5618
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
diff --git a/src/runtime/CL/functions/CLConvolutionLayer.cpp b/src/runtime/CL/functions/CLConvolutionLayer.cpp
index 1082a47..96d7cc7 100644
--- a/src/runtime/CL/functions/CLConvolutionLayer.cpp
+++ b/src/runtime/CL/functions/CLConvolutionLayer.cpp
@@ -232,7 +232,7 @@
return ConvolutionMethod::FFT;
}
}
- else
+ else if(is_data_type_float(input->data_type()))
{
if((weights->dimension(idx_h) >= 5) && (input->dimension(idx_c) >= output->dimension(idx_c)) && (CLDirectConvolutionLayer::validate(input, weights, nullptr, output, conv_info, act_info)))
{