DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector > Struct Template Reference#
Classes |
Public Types |
Public Member Functions |
Static Public Member Functions |
List of all members
ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector > Struct Template Reference
#include <device_permute_impl.hpp>
Inheritance diagram for ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector >:
Classes | |
| struct | Argument |
| struct | Invoker |
Public Types | |
| using | BaseType = DevicePermute<NumDim, InDataType, OutDataType, ElementwiseOperation> |
| using | InGridDesc = decltype(MakeDescriptor_N_H_W({1, 1}, {1, 1})) |
| using | OutGridDesc = InGridDesc |
| using | GridwisePermute |
| using | Block2TileMap = typename GridwisePermute::DefaultBlock2TileMap |
| using | Lengths |
| using | Strides |
| Public Types inherited from ck::tensor_operation::device::DevicePermute< NumDim, InDataType, OutDataType, ElementwiseOperation > | |
| using | Lengths = std::array<index_t, NumDim> |
| using | Strides = Lengths |
Public Member Functions | |
| bool | IsSupportedArgument (const BaseArgument *arg) override final |
| std::unique_ptr< BaseArgument > | MakeArgumentPointer (const Lengths &in_lengths, const Strides &in_strides, const Lengths &out_lengths, const Strides &out_strides, const void *in_dev_buffer, void *out_dev_buffer, ElementwiseOperation elementwise_op) override final |
| std::unique_ptr< BaseInvoker > | MakeInvokerPointer () override final |
| Public Member Functions inherited from ck::tensor_operation::device::BaseOperator | |
| BaseOperator ()=default | |
| BaseOperator (const BaseOperator &)=default | |
| BaseOperator & | operator= (const BaseOperator &)=default |
| 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 () |
Static Public Member Functions | |
| template<index_t N = NumDim> | |
| static auto | ConvertArrayToTuple (const std::array< index_t, NumDim > &array) |
| static auto | MakeDescriptor_N_H_W (const Lengths &lengths, const Strides &stride) |
| static bool | IsSupportedArgument (const Argument &arg) |
| template<typename... Args> | |
| static std::enable_if_t< std::is_constructible_v< Argument, Args... >, Argument > | MakeArgument (Args &&... args) noexcept(std::is_nothrow_constructible_v< Argument, Args... >) |
| static std::enable_if_t< std::is_default_constructible_v< Invoker >, Invoker > | MakeInvoker () noexcept(std::is_nothrow_default_constructible_v< Invoker >) |
Member Typedef Documentation
◆ BaseType
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector >::BaseType = DevicePermute<NumDim, InDataType, OutDataType, ElementwiseOperation> |
◆ Block2TileMap
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector >::Block2TileMap = typename GridwisePermute::DefaultBlock2TileMap |
◆ GridwisePermute
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector >::GridwisePermute |
Initial value:
InDataType,
OutDataType,
ElementwiseOperation,
BlockSize,
NPerBlock,
HPerBlock,
WPerBlock,
InBlockLdsExtraW,
InBlockTransferThreadClusterLengths,
InBlockTransferThreadClusterArrangeOrder,
SrcVectorDim - (NumDim - 3),
DstVectorDim - (NumDim - 3),
SrcScalarPerVector,
DstScalarPerVector>
InGridDesc OutGridDesc
Definition device_permute_impl.hpp:90
decltype(MakeDescriptor_N_H_W({1, 1}, {1, 1})) InGridDesc
Definition device_permute_impl.hpp:89
GridwisePermute< InGridDesc, OutGridDesc, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim -(NumDim - 3), DstVectorDim -(NumDim - 3), SrcScalarPerVector, DstScalarPerVector > GridwisePermute
Definition device_permute_impl.hpp:92
◆ InGridDesc
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector >::InGridDesc = decltype(MakeDescriptor_N_H_W({1, 1}, {1, 1})) |
◆ Lengths
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermute< NumDim, InDataType, OutDataType, ElementwiseOperation >::Lengths |
◆ OutGridDesc
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermuteImpl< NumDim, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim, DstVectorDim, SrcScalarPerVector, DstScalarPerVector >::OutGridDesc = InGridDesc |
◆ Strides
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
| using ck::tensor_operation::device::DevicePermute< NumDim, InDataType, OutDataType, ElementwiseOperation >::Strides |
Member Function Documentation
◆ ConvertArrayToTuple()
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
template<index_t N = NumDim>
|
inlinestatic |
◆ IsSupportedArgument() [1/2]
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
|
inlinestatic |
◆ IsSupportedArgument() [2/2]
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
|
inlinefinaloverridevirtual |
Reimplemented from ck::tensor_operation::device::BaseOperator.
◆ MakeArgument()
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
template<typename... Args>
|
inlinestaticnoexcept |
◆ MakeArgumentPointer()
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
|
inlinefinaloverridevirtual |
◆ MakeDescriptor_N_H_W()
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
|
inlinestatic |
◆ MakeInvoker()
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
|
inlinestaticnoexcept |
◆ MakeInvokerPointer()
template<index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation, index_t BlockSize, index_t NPerBlock, index_t HPerBlock, index_t WPerBlock, index_t InBlockLdsExtraW, typename InBlockTransferThreadClusterLengths, typename InBlockTransferThreadClusterArrangeOrder, index_t SrcVectorDim, index_t DstVectorDim, index_t SrcScalarPerVector, index_t DstScalarPerVector>
|
inlinefinaloverridevirtual |
The documentation for this struct was generated from the following file: