From 3b8e9864c64e45099f536b4641c37f26257f27ea Mon Sep 17 00:00:00 2001 From: Johannes Graner Date: Mon, 27 Oct 2025 18:43:09 +0100 Subject: [PATCH] [CK_TILE] Add conv fwd + bias + clamp example (#3012) * Implement argument passing to element-wise functions for fwd convolution * Add files for fwd + bias + clamp example * Implement Bias * Implement Clamp * Elementwise function composition * Composition unit test * Implement fwd + bias + clamp example * Simplify argument passing and composition * elfunc -> bias_and_clamp * Rename function to specify example * Move element-wise function instantiation to kernel * Make bias a runtime tensor * No ugly namespace aliasing * Initialize element-wise function on host * Remove function initialization helper, simplify Compose initialization * Remove unintended LSP compatibility patch * Clean up includes and unused code * Switch names in cshuffle epilogue * Move CDElementwise to conv traits * Re-add required include * Initialize bias in same way as other tensors * Better type specification for ds pointer * Disable 1D convolution * Add warning for non-group-constant bias [ROCm/composable_kernel commit: 5c1974065e6c0a95c5db6e09903f078ec7a386be] --- .../20_grouped_convolution/CMakeLists.txt | 3 + ...grouped_convolution_forward_bias_clamp.cpp | 58 ++++ .../grouped_convolution_forward_invoker.hpp | 13 +- ...ped_convolution_fwd_bias_clamp_example.inc | 301 ++++++++++++++++++ .../run_grouped_convolution_fwd_example.inc | 14 +- .../reference/reference_grouped_conv_fwd.hpp | 33 +- .../unary_element_wise_operation.hpp | 66 ++++ .../ops/epilogue/cshuffle_epilogue.hpp | 10 +- .../grouped_convolution_forward_kernel.hpp | 24 +- .../utils/grouped_convolution_utils.hpp | 29 +- .../elementwise/test_elementwise_1d.cpp | 14 +- 11 files changed, 524 insertions(+), 41 deletions(-) create mode 100644 example/ck_tile/20_grouped_convolution/grouped_convolution_forward_bias_clamp.cpp create mode 100644 example/ck_tile/20_grouped_convolution/run_grouped_convolution_fwd_bias_clamp_example.inc diff --git a/example/ck_tile/20_grouped_convolution/CMakeLists.txt b/example/ck_tile/20_grouped_convolution/CMakeLists.txt index 10332137e2..e9614061e1 100644 --- a/example/ck_tile/20_grouped_convolution/CMakeLists.txt +++ b/example/ck_tile/20_grouped_convolution/CMakeLists.txt @@ -4,6 +4,9 @@ list(APPEND EXAMPLE_CONV_COMPILE_OPTIONS -mllvm -enable-noalias-to-md-conversion add_executable(tile_example_grouped_conv_fwd EXCLUDE_FROM_ALL grouped_convolution_forward.cpp) target_compile_options(tile_example_grouped_conv_fwd PRIVATE ${EXAMPLE_GEMM_COMPILE_OPTIONS}) +add_executable(tile_example_grouped_conv_fwd_bias_clamp EXCLUDE_FROM_ALL grouped_convolution_forward_bias_clamp.cpp) +target_compile_options(tile_example_grouped_conv_fwd_bias_clamp PRIVATE ${EXAMPLE_GEMM_COMPILE_OPTIONS}) + add_executable(tile_example_grouped_conv_bwd_weight EXCLUDE_FROM_ALL grouped_convolution_backward_weight.cpp) target_compile_options(tile_example_grouped_conv_bwd_weight PRIVATE ${EXAMPLE_GEMM_COMPILE_OPTIONS}) diff --git a/example/ck_tile/20_grouped_convolution/grouped_convolution_forward_bias_clamp.cpp b/example/ck_tile/20_grouped_convolution/grouped_convolution_forward_bias_clamp.cpp new file mode 100644 index 0000000000..ed215cb178 --- /dev/null +++ b/example/ck_tile/20_grouped_convolution/grouped_convolution_forward_bias_clamp.cpp @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: MIT +// Copyright (c) 2025, Advanced Micro Devices, Inc. All rights reserved. + +#include + +#include +#include +#include +#include +#include + +#include "ck_tile/host.hpp" +#include "grouped_convolution_utils.hpp" +#include "grouped_convolution_forward_invoker.hpp" +#include "run_grouped_convolution_fwd_bias_clamp_example.inc" + +template