Skip to content

Commit

Permalink
[HOTFIX][WORKAROUND][MI100][FP32] W/A for SWDEV-305815 (issue #1206):…
Browse files Browse the repository at this point in the history
… Disable ConvHipImplicitGemmBwdDataV4R1Xdlops for FP32. (#1211)

* [HOTFIX][WORKAROUND][MI100][FP32] W/A for SWDEV-305815 (issue #1206). Disable ConvHipImplicitGemmBwdDataV4R1Xdlops for FP32.

* Added regression test for for SWDEV-305815 (issue #1206)
  • Loading branch information
atamazov committed Oct 8, 2021
1 parent 57cf916 commit 4dfb216
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
17 changes: 17 additions & 0 deletions src/solver/conv_hip_implicit_gemm_bwd_v4r1_xdlops.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
#include <miopen/solver/implicitgemm_util.hpp>
#include <cstddef>

/// Disable ConvHipImplicitGemmBwdDataV4R1Xdlops for FP32 by default.
/// \ref https://github.com/ROCmSoftwarePlatform/MIOpen/issues/1206.
#define WORKAROUND_ISSUE_1206 1

MIOPEN_DECLARE_ENV_VAR(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM_HIP_BWD_V4R1_XDLOPS)

namespace miopen {
Expand Down Expand Up @@ -804,8 +808,21 @@ ConvHipImplicitGemmBwdDataV4R1Xdlops::CalculateGemmSize(const ConvolutionContext

bool ConvHipImplicitGemmBwdDataV4R1Xdlops::IsApplicable(const ConvolutionContext& ctx) const
{
#if WORKAROUND_ISSUE_1206
if(ctx.IsFp32())
{
if(!miopen::IsEnabled(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM_HIP_BWD_V4R1_XDLOPS{}))
return false;
}
else
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM_HIP_BWD_V4R1_XDLOPS{}))
return false;
}
#else
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM_HIP_BWD_V4R1_XDLOPS{}))
return false;
#endif
if(ctx.skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage)
return false;
if(!IsComposableKernelSupportedHardware(ctx))
Expand Down
13 changes: 9 additions & 4 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ if(NOT (MIOPEN_TEST_VEGA OR MIOPEN_TEST_GFX908 OR MIOPEN_TEST_GFX90a OR MIOPEN_T
)
if(ROCMINFO_OUTPUT MATCHES "no GPU devices")
message(WARNING "ROCk module is NOT loaded, possibly no GPU devices")
set(MIOPEN_NO_GPU TRUE)
set(MIOPEN_NO_GPU TRUE)
elseif (NOT ROCMINFO_EXIT_STATUS EQUAL 0)
message(WARNING "ROCMINFO FAILED, GPU TYPE UNKNOWN. Manually set respective MIOPEN_TEST_GFX* CMake variable to specify target GPU for testing.")
set(MIOPEN_TEST_GPU_DETECTION_FAILED TRUE)
Expand Down Expand Up @@ -185,7 +185,7 @@ else()
endif()

if (MIOPEN_NO_GPU)
set(SKIP_ALL_EXCEPT_TESTS test_include_inliner test_kernel_build_params test_lstm test_lstm_dropout
set(SKIP_ALL_EXCEPT_TESTS test_include_inliner test_kernel_build_params test_lstm test_lstm_dropout
test_test_errors test_type_name test_tensor_test test_sqlite_perfdb test_sequences
test_pooling3d test_perfdb)
endif()
Expand Down Expand Up @@ -701,7 +701,6 @@ set(IMPLICITGEMM_TESTING_ENV
MIOPEN_DEBUG_CONV_FFT=0
MIOPEN_DEBUG_CONV_DIRECT=0
MIOPEN_DEBUG_CONV_GEMM=0
MIOPEN_DEBUG_CONV_SCGEMM=0
MIOPEN_DEBUG_CONV_IMPLICIT_GEMM=1
)

Expand Down Expand Up @@ -1195,7 +1194,7 @@ COMMAND ${DYNAMIC_IMPLICITGEMM_BWD_ENVS_XDLOPS} $<TARGET_FILE:test_conv2d> ${MIO
COMMAND ${DYNAMIC_IMPLICITGEMM_BWD_ENVS_XDLOPS} $<TARGET_FILE:test_conv2d> ${MIOPEN_TEST_FLOAT_ARG} --verbose --input 8 128 56 56 --weights 128 16 3 3 --pads_strides_dilations 1 1 1 1 1 1 --group-count 8 --disable-forward --disable-backward-weights
)

add_custom_test(test_conv_igemm_dynamic_xdlops_bwd_float SKIP_UNLESS_ALL HALF_DISABLED FLOAT_ENABLED GFX908_ENABLED VEGA_DISABLED
add_custom_test(test_conv_igemm_dynamic_xdlops_bwd_float SKIP_UNLESS_ALL HALF_DISABLED FLOAT_ENABLED GFX908_ENABLED VEGA_DISABLED
COMMAND ${DYNAMIC_IMPLICITGEMM_BWD_ENVS_XDLOPS} $<TARGET_FILE:test_conv2d> ${MIOPEN_TEST_FLOAT_ARG} --verbose --input 4 512 128 128 --weights 12 512 1 1 --pads_strides_dilations 0 0 1 1 1 1 --disable-forward --disable-backward-weights
)

Expand Down Expand Up @@ -1318,11 +1317,17 @@ COMMAND ${DYNAMIC_IMPLICITGEMM_XDLOPS_NHWC_WRW_ENVS} $<TARGET_FILE:test_conv2d>
COMMAND ${DYNAMIC_IMPLICITGEMM_XDLOPS_NHWC_WRW_ENVS} $<TARGET_FILE:test_conv2d> ${MIOPEN_TEST_FLOAT_ARG} --verbose --input 1 128 56 56 --weights 1 128 5 5 --pads_strides_dilations 0 0 2 2 1 1 --disable-forward ${ARGS_NHWC_WRW}

)

add_custom_test(test_regression_half_mi100 SKIP_UNLESS_ALL FLOAT_DISABLED HALF_ENABLED GFX908_ENABLED VEGA_DISABLED
# Regression test for SWDEV-291202
COMMAND MIOPEN_FIND_MODE=normal MIOPEN_DEBUG_FIND_ONLY_SOLVER=ConvHipImplicitGemmBwdDataV4R1Xdlops $<TARGET_FILE:test_conv2d> ${MIOPEN_TEST_FLOAT_ARG} --verbose --input 128 24 14 14 --weights 64 24 5 5 --pads_strides_dilations 2 2 1 1 1 1 --disable-forward --disable-backward-weights
)

add_custom_test(test_regression_float_mi100 SKIP_UNLESS_ALL GFX908_ENABLED VEGA_DISABLED
# Regression test for SWDEV-305815 (issue 1206)
COMMAND ${IMPLICITGEMM_TESTING_ENV} MIOPEN_LOG_LEVEL=5 $<TARGET_FILE:test_conv2d> ${MIOPEN_TEST_FLOAT_ARG} --verbose --input 32 256 38 38 --weights 256 256 1 1 --pads_strides_dilations 0 0 1 1 1 1 --disable-forward --disable-backward-weights
)

set(CONV_CK_IGEMM_FWD_V6R1_DLOPS_NCHW_ENV
MIOPEN_FIND_MODE=normal
MIOPEN_DEBUG_FIND_ONLY_SOLVER=ConvCkIgemmFwdV6r1DlopsNchw)
Expand Down

0 comments on commit 4dfb216

Please sign in to comment.