Implement address precalculation for indirect conv2d - OpenCL
- Implement kernel (ClIndirectConv2dAddressPrecalculationKernel)
- Implement OpenCL kernel (indirect_convolution.cl)
- Add test
Resolves COMPMID-5708
Change-Id: If7408e37cbc6f9ad8506ff3334bc574e5d6763fb
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8661
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/gpu/cl/ClKernelLibrary.cpp b/src/gpu/cl/ClKernelLibrary.cpp
index 4e03639..0ff7dfe 100644
--- a/src/gpu/cl/ClKernelLibrary.cpp
+++ b/src/gpu/cl/ClKernelLibrary.cpp
@@ -433,6 +433,7 @@
{ "im2col3x3_nhwc", "nhwc/im2col.cl" },
{ "im2col9x9_nhwc", "nhwc/im2col.cl" },
{ "im2col_generic_nhwc", "nhwc/im2col.cl" },
+ { "indirect_convolution_address_precalculation", "nhwc/indirect_convolution.cl" },
{ "normalization_layer_cross_map_nhwc", "nhwc/normalization_layer.cl" },
{ "normalization_layer_in_map_nhwc", "nhwc/normalization_layer.cl" },
{ "normalize_planar_yuv_layer_nhwc", "nhwc/normalize_planar_yuv_layer.cl" },
@@ -908,6 +909,10 @@
#include "./cl_kernels/nhwc/im2col.clembed"
},
{
+ "nhwc/indirect_convolution.cl",
+#include "./cl_kernels/nhwc/indirect_convolution.clembed"
+ },
+ {
"nhwc/batchnormalization_layer.cl",
#include "./cl_kernels/nhwc/batchnormalization_layer.clembed"
},