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 = GridwisePermute< InGridDesc, OutGridDesc, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim -(NumDim - 3), DstVectorDim -(NumDim - 3), SrcScalarPerVector, DstScalarPerVector > |
| using | Block2TileMap = typename GridwisePermute::DefaultBlock2TileMap |
| using | Lengths = std::array< index_t, NumDim > |
| using | Strides = Lengths |
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 | 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 = GridwisePermute< InGridDesc, OutGridDesc, InDataType, OutDataType, ElementwiseOperation, BlockSize, NPerBlock, HPerBlock, WPerBlock, InBlockLdsExtraW, InBlockTransferThreadClusterLengths, InBlockTransferThreadClusterArrangeOrder, SrcVectorDim - (NumDim - 3), DstVectorDim - (NumDim - 3), SrcScalarPerVector, DstScalarPerVector> |
◆ 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 = std::array<index_t, NumDim> |
◆ 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 = Lengths |
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:
- /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/impl/device_permute_impl.hpp
Public Types inherited from