mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-01 20:21:23 +00:00
* ck-builder: restructure testing conv In order to prepare for bwd of conv testing, this commit moves some files and types around so that we can reuse ckt::Args for both forward and backwards convolution. * ck-builder: decouple fwd_ck.hpp and fwd_reference.hpp from fwd.hpp This will allow us to more easily include fwd.hpp from backwards definitions, which is required for initializing bwd values. * ck-builder: fix layout of test_ckb_conv_bwd_weight_xdl_cshuffle_v3 Turns out that the supplied layout isn't actually supported... * ck-builder: ck and reference conv integration for bwd weight * ck-builder: ck bwd weight execution test * ck-builder: ckt::run support for ck-tile bwd weight * ck-builder: ck tile bwd weight execution test * ck-builder: extra debug printing in MatchesReference * ck-builder: make ckt::run return RunResult This type is more convenient than std::tuple, as it will allow us to use google test matchers with this in the future. * ck-builder: RunResult matcher Using EXPECT_THAT(..., SuccessfulRun()) will generate a check and a nice error message about how and why running an algorithm failed. * ck-builder: doc fixes * ck-builder: add missing headers
66 lines
4.0 KiB
C++
66 lines
4.0 KiB
C++
#include "../../builder/test/utils/ckb_conv_tile_test_configs.hpp"
|
|
#include "ck_tile/builder/testing/conv/fwd.hpp"
|
|
#include "ck_tile/builder/testing/conv/ck_tile.hpp"
|
|
|
|
namespace ckb = ck_tile::builder;
|
|
namespace ckt = ck_tile::builder::test;
|
|
namespace cku = ck_tile::builder::test_utils;
|
|
|
|
namespace ck_tile::builder::profiling {
|
|
|
|
constexpr auto SIGNATURE_NHWGC_FP32_FWD =
|
|
ckt::ConvSignature{.spatial_dim = 2,
|
|
.direction = ckb::ConvDirection::FORWARD,
|
|
.data_type = ckb::DataType::FP32,
|
|
.accumulation_data_type = ckb::DataType::FP32,
|
|
.input = {.config = {.layout = ckb::TensorLayout::NHWGC}},
|
|
.weight = {.config = {.layout = ckb::TensorLayout::GKYXC}},
|
|
.output = {.config = {.layout = ckb::TensorLayout::NHWGK}}};
|
|
|
|
constexpr auto SIGNATURE_NHWGC_BF16_FWD =
|
|
ckt::ConvSignature{.spatial_dim = 2,
|
|
.direction = ckb::ConvDirection::FORWARD,
|
|
.data_type = ckb::DataType::BF16,
|
|
.accumulation_data_type = ckb::DataType::FP32,
|
|
.input = {.config = {.layout = ckb::TensorLayout::NHWGC}},
|
|
.weight = {.config = {.layout = ckb::TensorLayout::GKYXC}},
|
|
.output = {.config = {.layout = ckb::TensorLayout::NHWGK}}};
|
|
|
|
constexpr auto SIGNATURE_NHWGC_FP16_FWD =
|
|
ckt::ConvSignature{.spatial_dim = 2,
|
|
.direction = ckb::ConvDirection::FORWARD,
|
|
.data_type = ckb::DataType::FP16,
|
|
.accumulation_data_type = ckb::DataType::FP32,
|
|
.input = {.config = {.layout = ckb::TensorLayout::NHWGC}},
|
|
.weight = {.config = {.layout = ckb::TensorLayout::GKYXC}},
|
|
.output = {.config = {.layout = ckb::TensorLayout::NHWGK}}};
|
|
|
|
constexpr auto SIGNATURE_NDHWGC_FP32_FWD =
|
|
ckt::ConvSignature{.spatial_dim = 3,
|
|
.direction = ckb::ConvDirection::FORWARD,
|
|
.data_type = ckb::DataType::FP32,
|
|
.accumulation_data_type = ckb::DataType::FP32,
|
|
.input = {.config = {.layout = ckb::TensorLayout::NDHWGC}},
|
|
.weight = {.config = {.layout = ckb::TensorLayout::GKZYXC}},
|
|
.output = {.config = {.layout = ckb::TensorLayout::NDHWGK}}};
|
|
|
|
constexpr auto SIGNATURE_NDHWGC_BF16_FWD =
|
|
ckt::ConvSignature{.spatial_dim = 3,
|
|
.direction = ckb::ConvDirection::FORWARD,
|
|
.data_type = ckb::DataType::BF16,
|
|
.accumulation_data_type = ckb::DataType::FP32,
|
|
.input = {.config = {.layout = ckb::TensorLayout::NDHWGC}},
|
|
.weight = {.config = {.layout = ckb::TensorLayout::GKZYXC}},
|
|
.output = {.config = {.layout = ckb::TensorLayout::NDHWGK}}};
|
|
|
|
constexpr auto SIGNATURE_NDHWGC_FP16_FWD =
|
|
ckt::ConvSignature{.spatial_dim = 3,
|
|
.direction = ckb::ConvDirection::FORWARD,
|
|
.data_type = ckb::DataType::FP16,
|
|
.accumulation_data_type = ckb::DataType::FP32,
|
|
.input = {.config = {.layout = ckb::TensorLayout::NDHWGC}},
|
|
.weight = {.config = {.layout = ckb::TensorLayout::GKZYXC}},
|
|
.output = {.config = {.layout = ckb::TensorLayout::NDHWGK}}};
|
|
|
|
} // namespace ck_tile::builder::profiling
|