BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun > Struct Template Reference

BlockwiseTensorSliceTransfer_v5r1&lt; BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun &gt; Struct Template Reference#

Composable Kernel: ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun > Struct Template Reference
ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun > Struct Template Reference

#include <blockwise_tensor_slice_transfer_v5r1.hpp>

Public Types

using Index = MultiIndex<nDim>

Public Member Functions

__device__ constexpr BlockwiseTensorSliceTransfer_v5r1 (const SrcDesc &src_desc, const Index &src_block_slice_origin, const DstDesc &dst_desc, const Index &dst_block_slice_origin)
template<typename SrcBuffer>
__device__ void RunRead (const SrcDesc &src_desc, const SrcBuffer &src_buf)
template<typename DstBuffer>
__device__ void RunWrite (const DstDesc &dst_desc, DstBuffer &dst_buf)
__device__ void MoveSrcSliceWindow (const SrcDesc &src_desc, const Index &step)
template<typename SrcMoveSliceWindowStepHack>
__device__ void MoveSrcSliceWindow (const SrcDesc &src_desc, const Index &step, const SrcMoveSliceWindowStepHack &src_move_slice_window_step_hack)
__device__ void MoveDstSliceWindow (const DstDesc &dst_desc, const Index &step)

Static Public Attributes

static constexpr index_t nDim = remove_reference_t<SrcDesc>::GetNumOfDimension()

Member Typedef Documentation

◆ Index

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
using ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::Index = MultiIndex<nDim>

Constructor & Destructor Documentation

◆ BlockwiseTensorSliceTransfer_v5r1()

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
__device__ constexpr ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::BlockwiseTensorSliceTransfer_v5r1 ( const SrcDesc & src_desc,
const Index & src_block_slice_origin,
const DstDesc & dst_desc,
const Index & dst_block_slice_origin )
inlineconstexpr

Member Function Documentation

◆ MoveDstSliceWindow()

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
__device__ void ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::MoveDstSliceWindow ( const DstDesc & dst_desc,
const Index & step )
inline

◆ MoveSrcSliceWindow() [1/2]

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
__device__ void ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::MoveSrcSliceWindow ( const SrcDesc & src_desc,
const Index & step )
inline

◆ MoveSrcSliceWindow() [2/2]

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
template<typename SrcMoveSliceWindowStepHack>
__device__ void ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::MoveSrcSliceWindow ( const SrcDesc & src_desc,
const Index & step,
const SrcMoveSliceWindowStepHack & src_move_slice_window_step_hack )
inline

◆ RunRead()

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
template<typename SrcBuffer>
__device__ void ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::RunRead ( const SrcDesc & src_desc,
const SrcBuffer & src_buf )
inline

◆ RunWrite()

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
template<typename DstBuffer>
__device__ void ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::RunWrite ( const DstDesc & dst_desc,
DstBuffer & dst_buf )
inline

Member Data Documentation

◆ nDim

template<index_t BlockSize, InMemoryDataOperationEnum DstInMemOp, typename BlockSliceLengths, typename ThreadSliceLengths, typename ThreadClusterLengths, typename ThreadClusterArrangeOrder, typename SrcData, typename DstData, typename SrcDesc, typename DstDesc, typename SrcDimAccessOrder, typename DstDimAccessOrder, typename SrcVectorTensorLengths, typename DstVectorTensorLengths, typename SrcVectorTensorContiguousDimOrder, typename DstVectorTensorContiguousDimOrder, bool ThreadTransferSrcResetCoordinateAfterRun, bool ThreadTransferDstResetCoordinateAfterRun>
index_t ck::BlockwiseTensorSliceTransfer_v5r1< BlockSize, DstInMemOp, BlockSliceLengths, ThreadSliceLengths, ThreadClusterLengths, ThreadClusterArrangeOrder, SrcData, DstData, SrcDesc, DstDesc, SrcDimAccessOrder, DstDimAccessOrder, SrcVectorTensorLengths, DstVectorTensorLengths, SrcVectorTensorContiguousDimOrder, DstVectorTensorContiguousDimOrder, ThreadTransferSrcResetCoordinateAfterRun, ThreadTransferDstResetCoordinateAfterRun >::nDim = remove_reference_t<SrcDesc>::GetNumOfDimension()
staticconstexpr

The documentation for this struct was generated from the following file: