From 9c92df814f7ee6c9da312bab561f05fa0f4b4dca Mon Sep 17 00:00:00 2001 From: nihui Date: Thu, 24 Mar 2022 10:35:47 +0800 Subject: [PATCH] better condition for mixing vulkan winograd f23 and f43 --- src/layer/vulkan/convolution_vulkan.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layer/vulkan/convolution_vulkan.cpp b/src/layer/vulkan/convolution_vulkan.cpp index 2925ad46d..340330e89 100644 --- a/src/layer/vulkan/convolution_vulkan.cpp +++ b/src/layer/vulkan/convolution_vulkan.cpp @@ -1005,7 +1005,7 @@ int Convolution_vulkan::forward(const VkMat& bottom_blob, VkMat& top_blob, VkCom if (opt.use_winograd_convolution && is_conv3x3s1d1 && channels * elempack >= 16 && num_output >= 16) { bool pre_winograd43 = true; - if (vkdev->info.type() == 0 && (w <= 24 && h <= 24 && (w != 22 && h != 22))) + if (vkdev->info.type() == 0 && ((w <= 18 && h <= 18) || (w >= 23 && w <= 24) && (h >= 23 && h <= 24))) pre_winograd43 = false; if (vkdev->info.type() != 0 && (w <= 12 && h <= 12)) pre_winograd43 = false; @@ -1378,7 +1378,7 @@ int Convolution_vulkan::forward(const VkImageMat& bottom_blob, VkImageMat& top_b if (opt.use_winograd_convolution && is_conv3x3s1d1 && channels * elempack >= 16 && num_output >= 16) { bool pre_winograd43 = true; - if (vkdev->info.type() == 0 && (w <= 24 && h <= 24 && (w != 22 && h != 22))) + if (vkdev->info.type() == 0 && ((w <= 18 && h <= 18) || (w >= 23 && w <= 24) && (h >= 23 && h <= 24))) pre_winograd43 = false; if (vkdev->info.type() != 0 && (w <= 12 && h <= 12)) pre_winograd43 = false;