/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_conv_tensor_rearrange.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_conv_tensor_rearrange.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_conv_tensor_rearrange.hpp Source File
device_conv_tensor_rearrange.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2018-2023, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
6 #include <array>
7 
9 
10 namespace ck {
11 namespace tensor_operation {
12 namespace device {
13 
30 template <index_t NDimSpatial,
31  typename ImageLayout,
32  typename InputDataType,
33  typename OutputDataType,
34  typename ConvTensorRearrangeOp>
36 {
37 
57  virtual std::unique_ptr<BaseArgument>
58  MakeArgumentPointer(const void* p_in,
59  void* p_out,
60  const ck::index_t G,
61  const ck::index_t N,
62  const ck::index_t C,
63  const std::array<index_t, NDimSpatial>& input_spatial_lengths,
64  const std::array<index_t, NDimSpatial>& filter_spatial_lengths,
65  const std::array<index_t, NDimSpatial>& output_spatial_lengths,
66  const std::array<index_t, NDimSpatial + 3>& image_g_n_c_wis_strides,
67  const std::array<index_t, 3>& gemm_g_m_k_strides,
68  const std::array<index_t, NDimSpatial>& conv_filter_strides,
69  const std::array<index_t, NDimSpatial>& conv_filter_dilations,
70  const std::array<index_t, NDimSpatial>& input_left_pads,
71  const std::array<index_t, NDimSpatial>& input_right_pads) = 0;
72 
73  virtual std::unique_ptr<BaseInvoker> MakeInvokerPointer() = 0;
74 };
75 
76 } // namespace device
77 } // namespace tensor_operation
78 } // namespace ck
Definition: ck.hpp:264
int32_t index_t
Definition: ck.hpp:289
Definition: device_base.hpp:76
Convolution Tensor Rearrange.
Definition: device_conv_tensor_rearrange.hpp:36
virtual std::unique_ptr< BaseInvoker > MakeInvokerPointer()=0
virtual std::unique_ptr< BaseArgument > MakeArgumentPointer(const void *p_in, void *p_out, const ck::index_t G, const ck::index_t N, const ck::index_t C, const std::array< index_t, NDimSpatial > &input_spatial_lengths, const std::array< index_t, NDimSpatial > &filter_spatial_lengths, const std::array< index_t, NDimSpatial > &output_spatial_lengths, const std::array< index_t, NDimSpatial+3 > &image_g_n_c_wis_strides, const std::array< index_t, 3 > &gemm_g_m_k_strides, const std::array< index_t, NDimSpatial > &conv_filter_strides, const std::array< index_t, NDimSpatial > &conv_filter_dilations, const std::array< index_t, NDimSpatial > &input_left_pads, const std::array< index_t, NDimSpatial > &input_right_pads)=0
Make argument pointer for image to column.