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

Appearance settings

Update IPP integration #27354

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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: 4.x
Choose a base branch
Loading
from
Open

Update IPP integration #27354

wants to merge 3 commits into from

Conversation

eplankin
Copy link
Contributor

Please merge together with opencv/opencv_3rdparty#96
Supported IPP version was updated to IPP 2022.1.0 for Linux and Windows. Bugs in norm() function which caused failure of sanity check in performance tests were fixed, IPP calls were enabled.

Previous update: #26463

@asmorkalov asmorkalov self-assigned this May 24, 2025
@asmorkalov asmorkalov added this to the 4.12.0 milestone May 24, 2025
hal/ipp/include/ipp_hal_core.hpp Show resolved Hide resolved
@asmorkalov
Copy link
Contributor

I observe strange crash on old host without AVX2 (Sandy Bridge):

Note: Google Test filter = Core_Norm/ElemWiseTest.accuracy/0
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from Core_Norm/ElemWiseTest
[ RUN      ] Core_Norm/ElemWiseTest.accuracy/0, where GetParam() = 16-byte object <B0-E9 F9-56 55-55 00-00 30-D7 F9-56 55-55 00-00>

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff55f3bd6 in icv_y8_ownNorm_Inf_16u_C1MR_P8Y8 () from /home/arina/Projects/opencv-build/lib/libopencv_core.so.412
(gdb) bt
#0  0x00007ffff55f3bd6 in icv_y8_ownNorm_Inf_16u_C1MR_P8Y8 () at /home/arina/Projects/opencv-build/lib/libopencv_core.so.412
#1  0x000000000000000e in ??? ()
#2  0x000000000000000e in ??? ()
#3  0x000000000000001e in ??? ()
#4  0x0000000000000002 in ??? ()
#5  0x00007fffffffd850 in ??? ()
#6  0x00007ffff55e3bc7 in icv_y8_ippiNorm_Inf_16u_C1MR () at /home/arina/Projects/opencv-build/lib/libopencv_core.so.412
#7  0x00000000fffffff0 in ??? ()
#8  0x00007ffff55407f5 in ipp_hal_norm (src=0x5555572c9cdc "", src_step=28, mask=0x55555719608e "", mask_step=14, width=14, height=30, type=2, norm_type=1, result=0x7fffffffc6d0) at /home/arina/Projects/opencv/hal/ipp/src/norm_ipp.cpp:35
#9  0x00007ffff4cf22f7 in cv::norm (_src=..., normType=0, _mask=...) at /home/arina/Projects/opencv/modules/core/src/norm.dispatch.cpp:310

Not sure if it's related to this particular patch. Looking forward.

@asmorkalov
Copy link
Contributor

There is no bug in 4.11.0 release. Looking on HAL related changes.

@opencv-alalek
Copy link
Contributor

host without AVX2

You could try to run on modern hosts using OPENCV_IPP=SSE42 env variable

@asmorkalov
Copy link
Contributor

Hm.. I do not see the issue with and without mentioned env variable on my Ryzen.

@asmorkalov
Copy link
Contributor

I tried Sandy Bridge host with current code and ICV IPP from 4.11.0. It works fine. The previous IPP ICV update brought the issue. Also I see stack corruption error time to time. I'll file a bug with all details to track details.

@@ -100,7 +100,7 @@ int ipp_hal_norm(const uchar* src, size_t src_step, const uchar* mask, size_t ma
0) :
norm_type == cv::NORM_L2 || norm_type == cv::NORM_L2SQR ?
(
#if (!IPP_DISABLE_NORM_8U)
#ifndef IPP_DISABLE_NORM_8U
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We prefer #if instead of #ifdef approach due to available compiler warnings.
When used macro is removed or renamed we will get warning for all related code for updating.

@asmorkalov
Copy link
Contributor

@eplankin Friendly reminder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.