Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

dnn: use dispatching for Winograd optimizations#26155

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
asmorkalov merged 1 commit intoopencv:4.xfrommshabunin:dnn-dispatch
Nov 14, 2024

Conversation

@mshabunin
Copy link
Contributor

@mshabuninmshabunin commentedSep 17, 2024
edited
Loading

Problem:

  • build OpenCV with-DCPU_BASELINE= configuration option (x86_64)
  • build fails with missing symbols indnn module

Solution

Use standard OpenCV dispatching mechanism for Winograd function

TODO:

  • Remove debugging output (CV_LOG_WARNING andWinofunc::name field)
  • Check NEON_FP16 Winograd implementation (build with-DENABLE_FP16=ON should enableuseFP16)
  • Remove block size assertions in implementations (e.g.CV_Assert(winoIblock == 3 && ...)
  • Use single namespace in.simd.hpp file

zihaomu and asmorkalov reacted with thumbs up emoji
@asmorkalov
Copy link
Contributor

Dispatch works with jetson orin. Please go ahead and clean-up the debug logs.

mshabunin reacted with thumbs up emoji

@asmorkalov
Copy link
Contributor

I tried ARMv7 withcmake -DCPU_BASELINE= -DCPU_DISPATCH=NEON ../opencv and got build error:

[ 38%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/backend.cpp.o/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp: In function ‘cv::dnn::Winofunc cv::dnn::getWinofunc_F32()’:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:14:50: error: ‘getWinofunc_F32’ is not a member of ‘cv::dnn::opt_NEON’     CV_CPU_DISPATCH(getWinofunc_F32, (), CV_CPU_DISPATCH_MODES_ALL);                                                  ^/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:14:50: note: suggested alternatives:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:12:19: note:   ‘cv::dnn::getWinofunc_F32’ cv::dnn::Winofunc getWinofunc_F32()                   ^In file included from /mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:6:0:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:1342:19: note:   ‘cv::cpu_baseline::getWinofunc_F32’ cv::dnn::Winofunc getWinofunc_F32()                   ^In file included from /mnt/disk/opencv/modules/core/include/opencv2/core/private/cv_cpu_include_simd_declarations.hpp:26:0,                 from /mnt/disk/opencv-build/modules/dnn/layers/cpu_kernels/conv_winograd_f63.simd_declarations.hpp:3,                 from /mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:7:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:13:19: note:   ‘cv::opt_NEON::getWinofunc_F32’ cv::dnn::Winofunc getWinofunc_F32();                   ^/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp: In function ‘cv::dnn::Winofunc cv::dnn::getWinofunc_F16()’:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:19:50: error: ‘getWinofunc_F16’ is not a member of ‘cv::dnn::opt_NEON’     CV_CPU_DISPATCH(getWinofunc_F16, (), CV_CPU_DISPATCH_MODES_ALL);                                                  ^/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:19:50: note: suggested alternatives:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:17:19: note:   ‘cv::dnn::getWinofunc_F16’ cv::dnn::Winofunc getWinofunc_F16()                   ^In file included from /mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:6:0:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:1851:19: note:   ‘cv::cpu_baseline::getWinofunc_F16’ cv::dnn::Winofunc getWinofunc_F16()                   ^In file included from /mnt/disk/opencv/modules/core/include/opencv2/core/private/cv_cpu_include_simd_declarations.hpp:26:0,                 from /mnt/disk/opencv-build/modules/dnn/layers/cpu_kernels/conv_winograd_f63.simd_declarations.hpp:3,                 from /mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp:7:/mnt/disk/opencv/modules/dnn/src/layers/cpu_kernels/conv_winograd_f63.simd.hpp:14:19: note:   ‘cv::opt_NEON::getWinofunc_F16’ cv::dnn::Winofunc getWinofunc_F16();                   ^modules/dnn/CMakeFiles/opencv_dnn.dir/build.make:718: recipe for target 'modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp.o' failedmake[2]: *** [modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp.o] Error 1make[2]: *** Waiting for unfinished jobs....[ 39%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/window.cpp.o
mshabunin reacted with eyes emoji

@mshabunin
Copy link
ContributorAuthor

I tried ARMv7 withcmake -DCPU_BASELINE= -DCPU_DISPATCH=NEON ../opencv and got build error:

This issue should be fixed now.

asmorkalov reacted with eyes emoji

@asmorkalovasmorkalov merged commit4866811 intoopencv:4.xNov 14, 2024
29 of 31 checks passed
@mshabuninmshabunin deleted the dnn-dispatch branchNovember 14, 2024 19:29
@asmorkalovasmorkalov mentioned this pull requestNov 21, 2024
@mshabuninmshabunin mentioned this pull requestDec 26, 2024
4 tasks
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@asmorkalovasmorkalovasmorkalov approved these changes

Assignees

@asmorkalovasmorkalov

Projects

None yet

Milestone

4.11.0

Development

Successfully merging this pull request may close these issues.

2 participants

@mshabunin@asmorkalov

[8]ページ先頭

©2009-2025 Movatter.jp