From a1b1e41bb261f5613f443fed7071936a360686ed Mon Sep 17 00:00:00 2001 From: Mohammed Suhail Munshi Date: Thu, 23 Mar 2023 22:21:31 +0000 Subject: Implement MatMul Function and Operator with Floating Point support for CPU - Implements MatMul function and operator for floating point datatype FP16/FP32 - Includes support for transposing dynamic tensors prior to matrix multiplication. - Adds tests for 2D/3D/4D+ tensors in MatMul with F32/F16 datatype (with all combinations of transposed/not-transposed tensors) - Updates fixture to allow for testing fused activation in MatMul - Adds tests for matmul with and without fused activation Resolved: [COMPMID-5898] Signed-off-by: Mohammed Suhail Munshi Change-Id: Iefa84b26dd723c9a51e6c3f91023152c6c31ace2 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9411 Reviewed-by: SiCong Li Tested-by: Arm Jenkins Benchmark: Arm Jenkins --- src/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/CMakeLists.txt') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 92c888056e..336d2cd5cc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -757,10 +757,10 @@ target_sources( cpu/kernels/instancenorm/generic/neon/impl.cpp cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp cpu/kernels/internal/CpuPool2dAssemblyWrapperKernel.cpp - cpu/kernels/lut/generic/neon/u8.cpp cpu/kernels/l2normlayer/generic/neon/fp16.cpp cpu/kernels/l2normlayer/generic/neon/fp32.cpp cpu/kernels/l2normlayer/generic/neon/impl.cpp + cpu/kernels/lut/generic/neon/u8.cpp cpu/kernels/maxunpool/generic/neon/fp16.cpp cpu/kernels/maxunpool/generic/neon/fp32.cpp cpu/kernels/maxunpool/generic/neon/impl.cpp @@ -829,6 +829,7 @@ target_sources( cpu/operators/CpuGemmDirectConv2d.cpp cpu/operators/CpuGemmLowpMatrixMultiplyCore.cpp cpu/operators/CpuGemmLowpOutputStage.cpp + cpu/operators/CpuMatMul.cpp cpu/operators/CpuMaxUnpooling.cpp cpu/operators/CpuMul.cpp cpu/operators/CpuPermute.cpp @@ -913,6 +914,7 @@ target_sources( runtime/NEON/functions/NELSTMLayer.cpp runtime/NEON/functions/NELSTMLayerQuantized.cpp runtime/NEON/functions/NELogical.cpp + runtime/NEON/functions/NEMatMul.cpp runtime/NEON/functions/NEMaxUnpoolingLayer.cpp runtime/NEON/functions/NEMeanStdDevNormalizationLayer.cpp runtime/NEON/functions/NENormalizationLayer.cpp @@ -960,4 +962,4 @@ target_sources( runtime/Tensor.cpp runtime/TensorAllocator.cpp runtime/Utils.cpp -) +) \ No newline at end of file -- cgit v1.2.1