opencv/modules/dnn/perf
Yuantao Feng fa5ed62a66
Merge pull request #24694 from fengyuentau:matmul_refactor
dnn: refactor ONNX MatMul with fastGemm #24694

Done:
- [x] add backends
    - [x] CUDA
    - [x] OpenVINO
    - [x] CANN
    - [x] OpenCL
    - [x] Vulkan
- [x] add perf tests
- [x] const B case

### Benchmark

Tests are done on M1. All data is in milliseconds (ms).

| Configuration | MatMul (Prepacked) | MatMul | InnerProduct |
| - | - | - | - |
| A=[12, 197, 197], B=[12, 197, 64], trans_a=0, trans_b=0 | **0.39** | 0.41 | 1.33 |
| A=[12, 197, 64], B=[12, 64, 197], trans_a=0, trans_b=0  | **0.42** | 0.42 | 1.17 |
| A=[12, 50, 64], B=[12, 64, 50], trans_a=0, trans_b=0    | **0.13** | 0.15 | 0.33 |
| A=[12, 50, 50], B=[12, 50, 64], trans_a=0, trans_b=0    | **0.11** | 0.13 | 0.22 |
| A=[16, 197, 197], B=[16, 197, 64], trans_a=0, trans_b=0 | **0.46** | 0.54 | 1.46 |
| A=[16, 197, 64], B=[16, 64, 197], trans_a=0, trans_b=0  | **0.46** | 0.95 | 1.74 |
| A=[16, 50, 64], B=[16, 64, 50], trans_a=0, trans_b=0    | **0.18** | 0.32 | 0.43 |
| A=[16, 50, 50], B=[16, 50, 64], trans_a=0, trans_b=0    | **0.15** | 0.25 | 0.25 |

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2023-12-19 19:36:41 +03:00
..
perf_caffe.cpp Merge pull request #24120 from dkurt:actualize_dnn_links 2023-08-16 15:46:11 +03:00
perf_common.cpp cmake: fix build of dnn tests with shared common code 2019-03-31 08:52:25 +00:00
perf_convolution1d.cpp Merge pull request #18783 from sl-sergei:fix_conv1d 2020-11-13 22:22:10 +00:00
perf_convolution3d.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-11-13 22:29:14 +00:00
perf_convolution.cpp Merge pull request #24547 from WanliZhong:refactor_conv_perf_test 2023-12-11 21:35:33 +03:00
perf_einsum.cpp Merge pull request #24509 from Abdurrahheem:ash/dev_einsum_fast_gemm 2023-11-16 16:20:17 +03:00
perf_gemm.cpp Merge pull request #24694 from fengyuentau:matmul_refactor 2023-12-19 19:36:41 +03:00
perf_layer.cpp Merge pull request #24378 from fengyuentau:instance_norm 2023-11-07 12:59:10 +03:00
perf_main.cpp Merge pull request #11897 from Jakub-Golinowski:hpx_backend 2018-08-31 16:23:26 +03:00
perf_net.cpp Merge pull request #24298 from WanliZhong:extend_perf_net_test 2023-10-04 13:05:32 +03:00
perf_precomp.hpp dnn(perf): fix and merge Convolution tests 2018-08-31 15:02:19 +03:00
perf_recurrent.cpp Merge pull request #20658 from smbz:lstm_optimisation 2021-11-29 21:43:00 +00:00