Skip to content
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

Replace test_conv_igemm_dynamic_xdlops_bwd with gtest #2409

Merged
merged 55 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from 50 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
29cb187
Replace test_conv_igemm_dynamic_xdlops_bwd with gtest
xinlipn Sep 19, 2023
e587185
Update supported GPU and half precision
xinlipn Sep 26, 2023
d334efe
Updated test_conv_igemm_dynamic_xdlops bwd fwd wrw gtests
xinlipn Sep 26, 2023
5e8f85c
Converted 6 gtests test_conv_igemm_dynamic_xdlops_nhwc_fwd etc
xinlipn Sep 27, 2023
811869f
Fix typo
xinlipn Sep 27, 2023
2075cfa
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 2, 2023
c0db01b
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 3, 2023
311f360
Added 3 conv_igemm_dynamic_xdlops_nhwc_bf16 tests, fixed a solver in …
xinlipn Oct 3, 2023
487acde
Add 2 conv_igemm_dynamic_xdlops_half tests fwd and wrw
xinlipn Oct 3, 2023
67fbcca
Add 1 new test conv_igemm_dynamic_xdlops_float BWD
xinlipn Oct 3, 2023
6d89345
reformat code
xinlipn Oct 4, 2023
426edf9
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 26, 2023
5bd3907
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 26, 2023
99880ee
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 27, 2023
aba2a0a
Remove miopenInt8x4 which is no longer supported
xinlipn Oct 27, 2023
d1a5043
Add const before string, cleaned up header
xinlipn Oct 27, 2023
9a9d5cc
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 30, 2023
4f9a4d5
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 30, 2023
37b8744
Fix ConvIgemmDynamicXdlopsBwd Conv2dFloat.FloatTest failed error
xinlipn Oct 31, 2023
d5274f9
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Oct 31, 2023
8fdcc4f
Removed unsupported GPU from tests and cleaned up code and
xinlipn Nov 21, 2023
5994492
Consolidated env var settings, i.e. MIOPEN_DEBUG_FIND_ONLY_SOLVER
xinlipn Nov 22, 2023
b37d9f3
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
junliume Nov 23, 2023
08485e5
Revert whitespace changes
xinlipn Nov 29, 2023
ab4ab69
Put back comments in CMakeLists.txt and gTest file
xinlipn Nov 30, 2023
e5eff37
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops and updated …
xinlipn Dec 5, 2023
edef000
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Dec 8, 2023
82679f3
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Dec 10, 2023
19bb57f
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
cderb Dec 11, 2023
06b21bc
Consolidate conv_igemm_dynamic_xdlops_float.cpp with conv_igemm_dynam…
xinlipn Dec 12, 2023
e4eecad
Consolidate conv_igemm_dynamic_xdlops_float.cpp into conv_igemm_dynam…
xinlipn Dec 13, 2023
58a932d
Add program name as first argument in argument list
xinlipn Dec 14, 2023
2ec84a6
add develop to resolve conflict
iq136boy Dec 14, 2023
c9f9302
Remove putenv()
xinlipn Dec 14, 2023
b25bc1d
Remove putEnv() and Merge branch 'sl/conv_igemm_dynamic_xdlops' of ht…
xinlipn Dec 14, 2023
1710ff2
Removed merge conflicts code
xinlipn Dec 14, 2023
f305d18
Fix build errrors upon calling miopen::UpdateEnvVar
xinlipn Dec 15, 2023
916f19d
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Dec 15, 2023
4063880
Add MIOPEN_TEST_GPU_XNACK_ENABLED in gtest/CMakeLists.txt
xinlipn Dec 18, 2023
296f03b
Merge branch 'sl/conv_igemm_dynamic_xdlops' of https://github.com/ROC…
xinlipn Dec 18, 2023
d330099
Add MIOPEN_TEST_GPU_XNACK_ENABLED to gtest CMakeLists.txt
xinlipn Dec 18, 2023
e1fc272
Merge branch 'sl/conv_igemm_dynamic_xdlops' of https://github.com/ROC…
xinlipn Dec 19, 2023
142e4c2
Add namespace for tests
xinlipn Dec 19, 2023
a6647e4
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Dec 19, 2023
f2d6a62
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Dec 20, 2023
f2913f8
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
junliume Dec 25, 2023
c30d4e5
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Jan 10, 2024
826b58d
Add and check MIOPEN_TEST_FLOAT_ARG, remove unneeded comment
xinlipn Jan 30, 2024
b723be1
Quary Xnack with API instead of setting env var
xinlipn Feb 7, 2024
04c9457
Update XNACK by querying hardware in all CPP
xinlipn Feb 12, 2024
444fed8
Revert changes for new env vars in CMakeLists.txt
xinlipn Feb 14, 2024
6bade90
Merge branch 'develop' into sl/conv_igemm_dynamic_xdlops
xinlipn Feb 14, 2024
b1ce475
Update conv_igemm_dynamic_xdlops test
xinlipn Feb 14, 2024
1cebc5d
Rename test suite with unique names for errors eg Attempted redefinit…
xinlipn Feb 14, 2024
d07616a
[gtest] change test suite name to avoid conflicts
junliume Feb 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
310 changes: 0 additions & 310 deletions test/CMakeLists.txt
iq136boy marked this conversation as resolved.
Show resolved Hide resolved

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion test/gtest/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ function(add_gtest TEST_NAME TEST_CPP)
if(NOT WIN32) # TODO: cannot run on Windows due to missing DLL dependencies
# Enable CMake to discover the test binary
# Extend GTest DISCOVERY_TIMEOUT to 5 mins
gtest_discover_tests(${TEST_NAME} DISCOVERY_TIMEOUT 300 PROPERTIES ENVIRONMENT "MIOPEN_USER_DB_PATH=${CMAKE_CURRENT_BINARY_DIR};MIOPEN_TEST_FLOAT_ARG=${MIOPEN_TEST_FLOAT_ARG};MIOPEN_TEST_ALL=${MIOPEN_TEST_ALL};MIOPEN_TEST_MLIR=${MIOPEN_TEST_MLIR};MIOPEN_TEST_COMPOSABLEKERNEL=${MIOPEN_TEST_COMPOSABLEKERNEL};CODECOV_TEST=${CODECOV_TEST};MIOPEN_TEST_DBSYNC=${MIOPEN_TEST_DBSYNC}")
gtest_discover_tests(${TEST_NAME} DISCOVERY_TIMEOUT 300 PROPERTIES ENVIRONMENT "MIOPEN_USER_DB_PATH=${CMAKE_CURRENT_BINARY_DIR};MIOPEN_TEST_FLOAT_ARG=${MIOPEN_TEST_FLOAT_ARG};MIOPEN_TEST_ALL=${MIOPEN_TEST_ALL};MIOPEN_TEST_MLIR=${MIOPEN_TEST_MLIR};MIOPEN_TEST_COMPOSABLEKERNEL=${MIOPEN_TEST_COMPOSABLEKERNEL};CODECOV_TEST=${CODECOV_TEST};MIOPEN_TEST_DBSYNC=${MIOPEN_TEST_DBSYNC};MIOPEN_FIND_MODE=${MIOPEN_FIND_MODE};MIOPEN_DEBUG_FIND_ONLY_SOLVER=${MIOPEN_DEBUG_FIND_ONLY_SOLVER};MIOPEN_TEST_GPU_XNACK_ENABLED=${MIOPEN_TEST_GPU_XNACK_ENABLED}")
Copy link
Contributor

Choose a reason for hiding this comment

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

This must be reverted. The test-specific and hardware-specific parameters should not be passed from CMake. See also #2646.

Copy link
Contributor

Choose a reason for hiding this comment

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

That's kind of important thing. It looks like we've missed few important architectural decisions and discussions and have already done some hardly maintainable things.
This env-var overusing is one of it - there is no common approach and no documentation and still no way to perfectly fit the same functionality from ctest.

Copy link
Contributor

Choose a reason for hiding this comment

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

not yet resolved

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated XNACK query with API for all .CPP files

Copy link
Contributor

@atamazov atamazov Feb 12, 2024

Choose a reason for hiding this comment

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

[can be marked as resolved] Continued in other review thread.

Copy link
Contributor

@atamazov atamazov Feb 12, 2024

Choose a reason for hiding this comment

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

[quality] Please revert this change, it is unnecessary.

endif()
target_link_libraries(${TEST_NAME} BZip2::BZip2)
if(WIN32)
Expand Down
225 changes: 225 additions & 0 deletions test/gtest/conv_igemm_dynamic_xdlops.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
/*******************************************************************************
*
* MIT License
*
* Copyright (c) 2023 Advanced Micro Devices, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*******************************************************************************/
#include <tuple>
#include <miopen/miopen.h>
#include <gtest/gtest.h>
#include "../conv2d.hpp"
#include "get_handle.hpp"

MIOPEN_DECLARE_ENV_VAR_BOOL(MIOPEN_TEST_ALL)
MIOPEN_DECLARE_ENV_VAR_STR(MIOPEN_FIND_MODE)
MIOPEN_DECLARE_ENV_VAR_STR(MIOPEN_DEBUG_FIND_ONLY_SOLVER)
MIOPEN_DECLARE_ENV_VAR_STR(MIOPEN_TEST_FLOAT_ARG)

namespace conv_igemm_dynamic_xdlops {

static bool SkipTest(const std::string& float_arg)
{
if(miopen::IsUnset(ENV(MIOPEN_TEST_ALL)))
return false;
if(miopen::IsEnabled(ENV(MIOPEN_TEST_ALL)))
if(miopen::GetStringEnv(ENV(MIOPEN_TEST_FLOAT_ARG)) == float_arg)
return false;
return true;
}

void SetupEnvVar(void)
{
miopen::UpdateEnvVar(ENV(MIOPEN_FIND_MODE), std::string("normal"));
miopen::UpdateEnvVar(
ENV(MIOPEN_DEBUG_FIND_ONLY_SOLVER),
Copy link
Contributor

Choose a reason for hiding this comment

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

These two variables should be unset after test complete. Otherwise next tests will misbehave, most likely.

In all tests, please.

Copy link
Contributor

@atamazov atamazov Feb 12, 2024

Choose a reason for hiding this comment

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

std::string("ConvAsmImplicitGemmGTCDynamicBwdXdlops;ConvAsmImplicitGemmGTCDynamicFwdXdlops;"
"ConvAsmImplicitGemmGTCDynamicWrwXdlops"));
}

void GetArgs(const std::string& param, std::vector<std::string>& tokens)
{
std::stringstream ss(param);
std::istream_iterator<std::string> begin(ss);
std::istream_iterator<std::string> end;
while(begin != end)
tokens.push_back(*begin++);
}

class Conv2dFloat : public testing::TestWithParam<std::vector<std::string>>
{
};

class Conv2dHalf : public testing::TestWithParam<std::vector<std::string>>
{
};

void Run2dDriver(miopenDataType_t prec)
{

std::vector<std::string> params;
switch(prec)
{
case miopenFloat: params = Conv2dFloat::GetParam(); break;
case miopenHalf: params = Conv2dHalf::GetParam(); break;
case miopenInt8:
case miopenBFloat16:
case miopenInt32:
case miopenDouble:
case miopenFloat8:
case miopenBFloat8:
FAIL() << "miopenInt8, miopenBFloat16, miopenInt32, "
"miopenDouble, miopenFloat8, miopenBFloat8 "
"data type not supported by conv_igemm_dynamic_xdlops test";

default: params = Conv2dFloat::GetParam();
}

SetupEnvVar();

for(const auto& test_value : params)
{
std::vector<std::string> tokens;
GetArgs(test_value, tokens);
std::vector<const char*> ptrs;

std::transform(tokens.begin(),
tokens.end(),
std::back_inserter(ptrs),
[](const std::string& str) { return str.data(); });

testing::internal::CaptureStderr();
test_drive<conv2d_driver>(ptrs.size(), ptrs.data());
Copy link
Contributor

Choose a reason for hiding this comment

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

test_drive expects the first char* in the argv to be the program name, but it looks like there is no program name in the test cases, or inserted at any later point. This may dump the first argument.

auto capture = testing::internal::GetCapturedStderr();
std::cout << capture;
}
};

bool IsTestSupportedForDevice(const miopen::Handle& handle)
Copy link
Contributor

Choose a reason for hiding this comment

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

[tip] Find out and check the XNACK target feature in this function.

Copy link
Contributor

Choose a reason for hiding this comment

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

resolved here, but other .cpp in this PR require the same check instead of environment variable

Copy link
Contributor

Choose a reason for hiding this comment

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

[resolved]

{
const auto target = handle.GetTargetProperties();
std::string devName = handle.GetDeviceName();
if(target.Xnack() && *target.Xnack())
return false;

if(devName == "gfx908")
return true;
else
return false;
}

std::vector<std::string> GetTestCases(const std::string& precision)
{
const std::string flags = "test_conv2d " + precision + " --verbose ";
const std::string dis_bk_data = " --disable-backward-data";
const std::string dis_bk_wei = " --disable-backward-weights";
const std::string dis_fwd = " --disable-forward";
const std::string dis_vali = " --disable-validation";

const std::vector<std::string> test_cases = {
// clang-format off
//bwd
{flags + " --input 64 64 28 28 --weights 16 64 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 16 128 36 36 --weights 32 128 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 64 64 56 56 --weights 256 64 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 64 224 17 17 --weights 224 224 1 7 --pads_strides_dilations 0 3 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 128 128 35 35 --weights 256 128 3 3 --pads_strides_dilations 1 1 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 128 128 64 64 --weights 256 128 3 3 --pads_strides_dilations 1 1 2 2 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 128 768 17 17 --weights 256 768 3 3 --pads_strides_dilations 1 1 1 1 2 2" + dis_fwd + dis_bk_wei},
{flags + " --input 3 256 28 28 --weights 80 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 2 256 12 18 --weights 256 256 3 3 --pads_strides_dilations 1 1 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 400 256 7 7 --weights 1024 256 7 7 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 400 256 1 1 --weights 1024 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
{flags + " --input 8 16 5 5 --weights 8 16 2 2 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_wei},
//ho=wo=1 stride=2
{flags + " --input 256 2048 2 2 --weights 1024 2048 1 1 --pads_strides_dilations 0 0 2 2 1 1" + dis_fwd + dis_bk_wei},
//fwd
//Be careful to add testings for (x=1, y=1, c % 8 != 0) due to WORKAROUND_SWDEV_306318
{flags + " --input 64 1024 14 14 --weights 1024 1024 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 64 256 56 56 --weights 512 256 1 1 --pads_strides_dilations 0 0 2 2 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 64 2048 7 7 --weights 2048 2048 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 128 128 17 17 --weights 128 128 7 1 --pads_strides_dilations 3 0 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 128 128 17 17 --weights 128 128 1 7 --pads_strides_dilations 0 3 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 128 192 17 17 --weights 320 192 3 3 --pads_strides_dilations 0 0 2 2 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 128 256 35 35 --weights 64 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 128 48 35 35 --weights 64 48 5 5 --pads_strides_dilations 2 2 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 64 512 7 7 --weights 512 512 3 3 --pads_strides_dilations 1 1 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 32 1024 14 14 --weights 2048 1024 1 1 --pads_strides_dilations 0 0 2 2 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 2 256 100 104 --weights 12 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_bk_data + dis_bk_wei},
{flags + " --input 1 256 28 28 --weights 80 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_bk_data + dis_bk_wei},
//ho=wo=1 stride=2
{flags + " --input 256 2048 2 2 --weights 1024 2048 1 1 --pads_strides_dilations 0 0 2 2 1 1 " + dis_bk_data + dis_bk_wei},
//wrw
{flags + " --input 64 64 28 28 --weights 32 64 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 16 128 36 36 --weights 32 128 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 64 64 56 56 --weights 256 64 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 64 224 17 17 --weights 224 224 1 7 --pads_strides_dilations 0 3 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 128 128 35 35 --weights 256 128 3 3 --pads_strides_dilations 1 1 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 128 128 64 64 --weights 256 128 3 3 --pads_strides_dilations 1 1 2 2 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 128 768 17 17 --weights 256 768 3 3 --pads_strides_dilations 1 1 1 1 2 2" + dis_fwd + dis_bk_data},
{flags + " --input 3 256 28 28 --weights 80 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 2 256 12 18 --weights 256 256 3 3 --pads_strides_dilations 1 1 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 4 512 128 128 --weights 12 512 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
//regression test for issue 540
{flags + " --input 4 32 79 141 --weights 64 32 5 10 --pads_strides_dilations 0 0 2 2 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 400 256 7 7 --weights 1024 256 7 7 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
{flags + " --input 400 256 1 1 --weights 1024 256 1 1 --pads_strides_dilations 0 0 1 1 1 1" + dis_fwd + dis_bk_data},
//Regression test for SWDEV-295434 (FP16 only).
{flags + " --input 120 256 3 3 --weights 340 256 3 3 --pads_strides_dilations 1 1 1 1 1 1" + dis_fwd + dis_bk_data},
//ho=wo=1 stride=2
{flags + " --input 256 2048 2 2 --weights 1024 2048 1 1 --pads_strides_dilations 0 0 2 2 1 1 " + dis_fwd + dis_bk_data}
// clang-format on
};
return test_cases;
}

} // namespace conv_igemm_dynamic_xdlops
using namespace conv_igemm_dynamic_xdlops;

TEST_P(Conv2dFloat, FloatTest_Conv_Igemm_Dynamic_dlops)
{
const auto& handle = get_handle();
if(IsTestSupportedForDevice(handle) && !SkipTest("--float"))
{
Run2dDriver(miopenFloat);
}
else
{
GTEST_SKIP();
}
};

TEST_P(Conv2dHalf, HalfTest_conv_igemm_dynamic_xdlops)
{
const auto& handle = get_handle();
if(IsTestSupportedForDevice(handle) && !SkipTest("--half"))
{
Run2dDriver(miopenHalf);
}
else
{
GTEST_SKIP();
}
};

INSTANTIATE_TEST_SUITE_P(ConvIgemmDynamic, Conv2dFloat, testing::Values(GetTestCases("--float")));

INSTANTIATE_TEST_SUITE_P(ConvIgemmDynamic, Conv2dHalf, testing::Values(GetTestCases("--half")));
Loading