DeviceConvTensorRearrange< NDimSpatial, ImageLayout, InputDataType, OutputDataType, ConvTensorRearrangeOp > Struct Template Reference#
Convolution Tensor Rearrange. More...
#include <device_conv_tensor_rearrange.hpp>
Public Member Functions | |
| 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 |
| Public Member Functions inherited from ck::tensor_operation::device::BaseOperator | |
| BaseOperator ()=default | |
| BaseOperator (const BaseOperator &)=default | |
| BaseOperator & | operator= (const BaseOperator &)=default |
| virtual bool | IsSupportedArgument (const BaseArgument *) |
| virtual std::string | GetTypeString () const |
| virtual std::string | GetInstanceString () const |
| virtual std::string | GetTypeIdName () const |
| virtual std::optional< std::string > | GetObjectName () const |
| virtual std::optional< std::string > | GetTemplateInfo () const |
| virtual std::string | GetTypeIdHashCode () const |
| virtual size_t | GetWorkSpaceSize (const BaseArgument *) const |
| virtual void | SetWorkSpacePointer (BaseArgument *p_arg, void *p_workspace, const StreamConfig &=StreamConfig{}) const |
| virtual | ~BaseOperator () |
Detailed Description
struct ck::tensor_operation::device::DeviceConvTensorRearrange< NDimSpatial, ImageLayout, InputDataType, OutputDataType, ConvTensorRearrangeOp >
Convolution Tensor Rearrange.
This Device operator supports converting an image to the GEMM representation (Image to Column) and converting a GEMM form to the image (Column to Image). Supported layouts: [G, N, Di, Hi, Wi, C] <-> [G, N * Do * Ho * Wo, Z * Y * X * C] [N, Di, Hi, Wi, G, C] <-> [N * Do * Ho * Wo, G, Z * Y * X * C]
Member Function Documentation
◆ MakeArgumentPointer()
|
pure virtual |
Make argument pointer for image to column.
- Parameters
-
p_in A pointer to the device memory of the input image. p_out A pointer to the device memory of the output. G Convolution number of groups. N Convolution batch size. C Convolution number of channels. input_spatial_lengths Input spatial lengths. filter_spatial_lengths Filter spatial lengths. output_spatial_lengths Output spatial lengths. image_g_n_c_wis_strides Image strides in order [G, N, C, D, H, W]. gemm_g_m_k_strides Gemm form strides. conv_filter_strides Convolution filter strides. conv_filter_dilations Convolution filter dilations. input_left_pads Convolution left pads. input_right_pads Convolution right pads.
- Returns
- Pointer to the argument.
Implemented in ck::tensor_operation::device::DeviceColumnToImageImpl< NDimSpatial, ImageLayout, InputDataType, OutputDataType, BlockSize, MPerBlock, KPerBlock, ThreadClusterLengths, ScalarPerVector,, bool, type >, and ck::tensor_operation::device::DeviceImageToColumnImpl< NDimSpatial, ImageLayout, InputDataType, OutputDataType, BlockSize, MPerBlock, KPerBlock, ThreadClusterLengths, ScalarPerVector,, bool, type >.
◆ MakeInvokerPointer()
|
pure virtual |
Implemented in ck::tensor_operation::device::DeviceColumnToImageImpl< NDimSpatial, ImageLayout, InputDataType, OutputDataType, BlockSize, MPerBlock, KPerBlock, ThreadClusterLengths, ScalarPerVector,, bool, type >, and ck::tensor_operation::device::DeviceImageToColumnImpl< NDimSpatial, ImageLayout, InputDataType, OutputDataType, BlockSize, MPerBlock, KPerBlock, ThreadClusterLengths, ScalarPerVector,, bool, type >.
The documentation for this struct was generated from the following file: