mirror of
https://github.com/opencv/opencv.git
synced 2025-08-06 06:26:29 +08:00
Merge pull request #23357 from zihaomu:fix_winograd_error_32bit
DNN : fix bug in 32 bit cpu
This commit is contained in:
commit
924a65413a
@ -103,13 +103,13 @@ Ptr<FastConv> initFastConv(
|
|||||||
}
|
}
|
||||||
|
|
||||||
conv->conv_type = ifRunDepthWise && conv_dim != CONV_3D ? CONV_TYPE_DEPTHWISE :
|
conv->conv_type = ifRunDepthWise && conv_dim != CONV_3D ? CONV_TYPE_DEPTHWISE :
|
||||||
useWinograd && (conv_dim == CONV_2D && (conv->useSIMD128 || conv->useAVX2 || conv->useNEON) &&
|
useWinograd && (conv_dim == CONV_2D && (conv->useSIMD128 || conv->useAVX || conv->useAVX2 || conv->useNEON) &&
|
||||||
Hk == 3 && Wk == 3 && dilation_h == 1 && dilation_w == 1 && stride_h == 1 && stride_w == 1) ?
|
Hk == 3 && Wk == 3 && dilation_h == 1 && dilation_w == 1 && stride_h == 1 && stride_w == 1) ?
|
||||||
CONV_TYPE_WINOGRAD3X3 :
|
CONV_TYPE_WINOGRAD3X3 :
|
||||||
(ifRunDepthWiseRemain ? CONV_TYPE_DEPTHWISE_REMAIN : CONV_TYPE_GENERIC);
|
(ifRunDepthWiseRemain ? CONV_TYPE_DEPTHWISE_REMAIN : CONV_TYPE_GENERIC);
|
||||||
|
|
||||||
#if !(CV_NEON || CV_SIMD128 || CV_TRY_AVX2)
|
#if !(CV_NEON || CV_SIMD128 || CV_TRY_AVX || CV_TRY_AVX2)
|
||||||
if (conv->conv_type == CONV_TYPE_WINOGRAD3X3) // Disabel Winograd when CV_NEON, CV_SIMD128 and CV_TRY_AVX2 are not available.
|
if (conv->conv_type == CONV_TYPE_WINOGRAD3X3) // Disabel Winograd when CV_NEON, CV_SIMD128 ,CV_TRY_AVX and CV_TRY_AVX2 are not available.
|
||||||
conv->conv_type = CONV_TYPE_GENERIC;
|
conv->conv_type = CONV_TYPE_GENERIC;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -28,13 +28,13 @@ enum {
|
|||||||
CONV_WINO_AREA=CONV_WINO_SIZE*CONV_WINO_SIZE,
|
CONV_WINO_AREA=CONV_WINO_SIZE*CONV_WINO_SIZE,
|
||||||
|
|
||||||
CONV_WINO_KBLOCK = 4,
|
CONV_WINO_KBLOCK = 4,
|
||||||
#if (CV_NEON && CV_NEON_AARCH64) || CV_TRY_AVX2
|
#if (CV_NEON && CV_NEON_AARCH64) || CV_TRY_AVX || CV_TRY_AVX2
|
||||||
CONV_WINO_IBLOCK = 6,
|
CONV_WINO_IBLOCK = 6,
|
||||||
#else
|
#else
|
||||||
CONV_WINO_IBLOCK = 3,
|
CONV_WINO_IBLOCK = 3,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CV_TRY_AVX2
|
#if CV_TRY_AVX || CV_TRY_AVX2
|
||||||
CONV_WINO_ATOM_F32 = 8,
|
CONV_WINO_ATOM_F32 = 8,
|
||||||
#else
|
#else
|
||||||
CONV_WINO_ATOM_F32 = 4,
|
CONV_WINO_ATOM_F32 = 4,
|
||||||
|
Loading…
Reference in New Issue
Block a user