[GPU] Add Disable Winograd convolution debug config. (#18701)

Signed-off-by: hyunback <hyunback.kim@intel.com>
This commit is contained in:
hyunback kim
2023-08-10 10:58:57 +09:00
committed by GitHub
parent 575f497c8b
commit f683fabcbf
3 changed files with 10 additions and 0 deletions
@@ -121,6 +121,7 @@ public:
std::vector<std::string> forced_impl_types; // Force implementation type either ocl or onednn
int max_kernels_per_batch; // Maximum number of kernels in a batch during compiling kernels
int disable_async_compilation; // Disable async compilation
int disable_winograd_conv; // Disable Winograd conv
int disable_dynamic_impl; // Disable dynamic implementation
int disable_runtime_buffer_fusing; // Disable runtime buffer fusing
int disable_memory_reuse; // Disable memmory reuse among layers
@@ -505,6 +505,10 @@ bool should_use_winograd_2x3_s1(const convolution_node& node,
return false;
// cases when NOT to use winograd
GPU_DEBUG_GET_INSTANCE(debug_config);
GPU_DEBUG_IF(debug_config->disable_winograd_conv == 1)
return false;
auto prim = node.get_primitive();
if (input_layout.data_type != data_types::f16
|| input_layout.feature() % 64 != 0 // current algorithm is effective for ifm to be multiply of 64
@@ -134,9 +134,12 @@ static void print_help_messages() {
" For primitives fc, gemm, do, reduce, concat are supported. Separated by space.");
message_list.emplace_back("OV_GPU_MaxKernelsPerBatch", "Maximum number of kernels in a batch during compiling kernels");
message_list.emplace_back("OV_GPU_DisableAsyncCompilation", "Disable async compilation");
message_list.emplace_back("OV_GPU_DisableWinogradConv", "Disable Winograd convolution");
message_list.emplace_back("OV_GPU_DisableDynamicImpl", "Disable dynamic implementation");
message_list.emplace_back("OV_GPU_DisableRuntimeBufferFusing", "Disable runtime buffer fusing");
message_list.emplace_back("OV_GPU_DisableMemoryReuse", "Disable memory reuse");
message_list.emplace_back("OV_GPU_DisableBuildTimeWeightReorderForDynamicNodes", "Disable build time weight reorder for dynmaic nodes.");
message_list.emplace_back("OV_GPU_DisableRuntimeSkipReorder", "Disable runtime skip reorder.");
message_list.emplace_back("OV_GPU_DisablePrimitiveFusing", "Disable primitive fusing");
message_list.emplace_back("OV_GPU_DumpIteration", "Dump n-th execution of network, separated by space.");
message_list.emplace_back("OV_GPU_MemPreallocationOptions", "Controls buffer pre-allocation feature. Expects 4 values separated by space in"
@@ -188,6 +191,7 @@ debug_configuration::debug_configuration()
, serialize_compile(0)
, max_kernels_per_batch(0)
, disable_async_compilation(0)
, disable_winograd_conv(0)
, disable_dynamic_impl(0)
, disable_runtime_buffer_fusing(0)
, disable_memory_reuse(0)
@@ -225,6 +229,7 @@ debug_configuration::debug_configuration()
get_gpu_debug_env_var("ForceImplTypes", forced_impl_types_str);
get_gpu_debug_env_var("MaxKernelsPerBatch", max_kernels_per_batch);
get_gpu_debug_env_var("DisableAsyncCompilation", disable_async_compilation);
get_gpu_debug_env_var("DisableWinogradConv", disable_winograd_conv);
get_gpu_debug_env_var("DisableDynamicImpl", disable_dynamic_impl);
get_gpu_debug_env_var("DisableRuntimeBufferFusing", disable_runtime_buffer_fusing);
get_gpu_debug_env_var("DisableMemoryReuse", disable_memory_reuse);