device_conv_tensor_rearrange.hpp Source File

device_conv_tensor_rearrange.hpp Source File#

Composable Kernel: 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
10namespace ck {
11namespace tensor_operation {
12namespace device {
13
30template <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 convolution_backward_data_specialization.hpp:8
Definition convolution_backward_data_specialization.hpp:7
Definition ck.hpp:268
int32_t index_t
Definition ck.hpp:299
Convolution Tensor Rearrange.
Definition device_conv_tensor_rearrange.hpp:36
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.
virtual std::unique_ptr< BaseInvoker > MakeInvokerPointer()=0