/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-7.0.0/include/ck_tile/ops/grouped_convolution/utils/grouped_convolution_utils.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-7.0.0/include/ck_tile/ops/grouped_convolution/utils/grouped_convolution_utils.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-7.0.0/include/ck_tile/ops/grouped_convolution/utils/grouped_convolution_utils.hpp Source File
grouped_convolution_utils.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2025, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
6 #include "ck_tile/core.hpp"
8 
9 namespace ck_tile {
10 
18 {
21  const void* in_ptr_,
22  const void* wei_ptr_,
23  const std::vector<const void*> ds_ptr_,
24  void* out_ptr_,
25  index_t k_batch_)
26  : conv::ConvParam(conv_param),
27  in_ptr(in_ptr_),
28  wei_ptr(wei_ptr_),
29  ds_ptr(ds_ptr_),
30  out_ptr(out_ptr_),
31  k_batch(k_batch_)
32  {
33  }
34 
35  const void* in_ptr;
36  const void* wei_ptr;
37  const std::vector<const void*> ds_ptr;
38  void* out_ptr;
40 };
41 
42 template <index_t NDimSpatial_,
43  ConvolutionSpecialization ConvSpecialization_,
44  typename InLayout_,
45  typename WeiLayout_,
46  typename DsLayout_,
47  typename OutLayout_>
49 {
50  private:
51  static constexpr auto generate_implicit_gemm_layout()
52  {
53  return generate_tuple([](auto) { return ck_tile::tensor_layout::gemm::RowMajor{}; },
54  number<DsLayout_::size()>{});
55  }
56 
57  public:
58  static constexpr index_t NDimSpatial = NDimSpatial_;
59  static constexpr ConvolutionSpecialization ConvSpecialization = ConvSpecialization_;
60  using InLayout = InLayout_;
61  using WeiLayout = WeiLayout_;
62  using DsLayout = DsLayout_;
63  using OutLayout = OutLayout_;
65  true,
66  true,
70  static constexpr index_t NumDTensor = DsLayout::size();
71  using ImplicitGemmDsLayout = decltype(generate_implicit_gemm_layout());
72 };
73 
74 } // namespace ck_tile
#define CK_TILE_HOST
Definition: config.hpp:39
Definition: cluster_descriptor.hpp:13
ConvolutionSpecialization
Definition: convolution_specialization.hpp:11
int32_t index_t
Definition: integer.hpp:9
constexpr CK_TILE_HOST_DEVICE auto generate_tuple(F &&f, number< N >)
Definition: tuple.hpp:406
The Grouped Conv kernel host arguments.
Definition: grouped_convolution_utils.hpp:18
CK_TILE_HOST GroupedConvHostArgs(ConvParam conv_param, const void *in_ptr_, const void *wei_ptr_, const std::vector< const void * > ds_ptr_, void *out_ptr_, index_t k_batch_)
Definition: grouped_convolution_utils.hpp:20
const void * wei_ptr
Definition: grouped_convolution_utils.hpp:36
index_t k_batch
Definition: grouped_convolution_utils.hpp:39
CK_TILE_HOST GroupedConvHostArgs()=delete
const void * in_ptr
Definition: grouped_convolution_utils.hpp:35
void * out_ptr
Definition: grouped_convolution_utils.hpp:38
const std::vector< const void * > ds_ptr
Definition: grouped_convolution_utils.hpp:37
Definition: grouped_convolution_utils.hpp:49
WeiLayout_ WeiLayout
Definition: grouped_convolution_utils.hpp:61
static constexpr index_t NDimSpatial
Definition: grouped_convolution_utils.hpp:58
decltype(generate_implicit_gemm_layout()) ImplicitGemmDsLayout
Definition: grouped_convolution_utils.hpp:71
InLayout_ InLayout
Definition: grouped_convolution_utils.hpp:60
static constexpr index_t NumDTensor
Definition: grouped_convolution_utils.hpp:70
OutLayout_ OutLayout
Definition: grouped_convolution_utils.hpp:63
DsLayout_ DsLayout
Definition: grouped_convolution_utils.hpp:62
static constexpr ConvolutionSpecialization ConvSpecialization
Definition: grouped_convolution_utils.hpp:59
Definition: tile_gemm_traits.hpp:18
Definition: integral_constant.hpp:13
Definition: convolution_parameter.hpp:15
ConvParam(ck_tile::index_t n_dim, ck_tile::index_t group_count, ck_tile::index_t n_batch, ck_tile::index_t n_out_channels, ck_tile::index_t n_in_channels, const std::vector< ck_tile::index_t > &filters_len, const std::vector< ck_tile::index_t > &input_len, const std::vector< ck_tile::index_t > &strides, const std::vector< ck_tile::index_t > &dilations, const std::vector< ck_tile::index_t > &left_pads, const std::vector< ck_tile::index_t > &right_pads)
Definition: convolution_parameter.hpp:16
Definition: tensor_layout.hpp:22
Definition: tensor_layout.hpp:17