mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-03 05:01:25 +00:00
Add IsSupportedArgument() to gemm_kernel (#1698)
* add IsSupportedArgument to gemm_kernel * add ut and do some refactoring * switched to ck_tile's integral_constant
This commit is contained in:
@@ -8,35 +8,29 @@
|
||||
#include "ck_tile/host.hpp"
|
||||
#include "test_gemm_mem_pipeline_util.hpp"
|
||||
|
||||
using F16 = ck_tile::half_t;
|
||||
using F32 = float;
|
||||
|
||||
using Row = ck_tile::tensor_layout::gemm::RowMajor;
|
||||
using Col = ck_tile::tensor_layout::gemm::ColumnMajor;
|
||||
static constexpr auto Intrawave = ck_tile::GemmPipelineScheduler::Intrawave;
|
||||
static constexpr auto Interwave = ck_tile::GemmPipelineScheduler::Interwave;
|
||||
|
||||
template <typename Tuple>
|
||||
class TestCkTileGemmMemPipelineIntrawave : public TestCkTileGemmMemPipeline<Tuple, Intrawave>
|
||||
{
|
||||
};
|
||||
|
||||
template <typename Tuple>
|
||||
class TestCkTileGemmMemPipelineInterwave : public TestCkTileGemmMemPipeline<Tuple, Interwave>
|
||||
{
|
||||
};
|
||||
using F16 = ck_tile::half_t;
|
||||
using F32 = float;
|
||||
using Row = ck_tile::tensor_layout::gemm::RowMajor;
|
||||
using Col = ck_tile::tensor_layout::gemm::ColumnMajor;
|
||||
using Intrawave = ck_tile::integral_constant<ck_tile::GemmPipelineScheduler,
|
||||
ck_tile::GemmPipelineScheduler::Intrawave>;
|
||||
using Interwave = ck_tile::integral_constant<ck_tile::GemmPipelineScheduler,
|
||||
ck_tile::GemmPipelineScheduler::Interwave>;
|
||||
|
||||
// clang-format off
|
||||
using KernelTypes = ::testing::Types<
|
||||
// ALayout, BLayout, CLayout, ADataType, BDataType, AccDataType, CDataType
|
||||
std::tuple< Row, Col, Row, F16, F16, F32, F16>,
|
||||
std::tuple< Col, Row, Row, F16, F16, F32, F16>,
|
||||
std::tuple< Row, Row, Row, F16, F16, F32, F16>,
|
||||
std::tuple< Col, Col, Row, F16, F16, F32, F16>
|
||||
// ALayout, BLayout, CLayout, ADataType, BDataType, AccDataType, CDataType, GemmPipelineScheduler
|
||||
std::tuple< Row, Row, Row, F16, F16, F32, F16, Intrawave>,
|
||||
std::tuple< Row, Row, Row, F16, F16, F32, F16, Interwave>,
|
||||
std::tuple< Row, Col, Row, F16, F16, F32, F16, Intrawave>,
|
||||
std::tuple< Row, Col, Row, F16, F16, F32, F16, Interwave>,
|
||||
std::tuple< Col, Row, Row, F16, F16, F32, F16, Intrawave>,
|
||||
std::tuple< Col, Row, Row, F16, F16, F32, F16, Interwave>,
|
||||
std::tuple< Col, Col, Row, F16, F16, F32, F16, Intrawave>,
|
||||
std::tuple< Col, Col, Row, F16, F16, F32, F16, Interwave>
|
||||
>;
|
||||
// clang-format on
|
||||
|
||||
TYPED_TEST_SUITE(TestCkTileGemmMemPipelineIntrawave, KernelTypes);
|
||||
TYPED_TEST_SUITE(TestCkTileGemmMemPipelineInterwave, KernelTypes);
|
||||
TYPED_TEST_SUITE(TestCkTileGemmMemPipeline, KernelTypes);
|
||||
|
||||
#include "test_gemm_mem_pipeline_ut_cases.inc"
|
||||
|
||||
Reference in New Issue
Block a user