ThreadwiseTensorSliceTransfer_v7< SrcDatas, DstDatas, SrcDescs, DstDescs, ElementwiseOperation, DstInMemOps, SliceLengths, DimAccessOrder, VectorDim, ScalarPerVector, SrcResetCoordinateAfterRunFlags, DstResetCoordinateAfterRunFlags > Struct Template Reference#
Public Types |
Public Member Functions |
Static Public Member Functions |
Static Public Attributes |
List of all members
ck::ThreadwiseTensorSliceTransfer_v7< SrcDatas, DstDatas, SrcDescs, DstDescs, ElementwiseOperation, DstInMemOps, SliceLengths, DimAccessOrder, VectorDim, ScalarPerVector, SrcResetCoordinateAfterRunFlags, DstResetCoordinateAfterRunFlags > Struct Template Reference
#include <threadwise_tensor_slice_transfer_v7.hpp>
Public Types | |
| using | Index = MultiIndex<nDim> |
| using | SrcCoords = decltype(MakeCoordinates(SrcDescs{}, StaticallyIndexedArray<Index, nSrc>{})) |
| using | DstCoords = decltype(MakeCoordinates(DstDescs{}, StaticallyIndexedArray<Index, nDst>{})) |
| using | SpaceFillingCurve |
Public Member Functions | |
| __device__ constexpr | ThreadwiseTensorSliceTransfer_v7 (const SrcDescs &src_descs, const StaticallyIndexedArray< Index, nSrc > &src_slice_origins, const DstDescs &dst_descs, const StaticallyIndexedArray< Index, nDst > &dst_slice_origins, const ElementwiseOperation &element_op) |
| template<typename Indices, enable_if_t< SrcDescs::Size()==Indices::Size(), bool > = false> | |
| __device__ void | SetSrcSliceOrigins (const SrcDescs &src_descs, const Indices &src_slice_origin_idxs) |
| template<typename Indices, enable_if_t< DstDescs::Size()==Indices::Size(), bool > = false> | |
| __device__ void | SetDstSliceOrigins (const DstDescs &dst_descs, const Indices &dst_slice_origin_idxs) |
| template<typename SrcBuffers, typename DstBuffers, enable_if_t< SrcDescs::Size()==SrcBuffers::Size() &&DstDescs::Size()==DstBuffers::Size(), bool > = false> | |
| __device__ void | Run (const SrcDescs &src_descs, const SrcBuffers &src_bufs, const DstDescs &dst_descs, DstBuffers dst_bufs) |
| template<index_t ISrc> | |
| __device__ void | MoveSrcSliceWindow (const SrcDescs &src_descs, Number< ISrc > iSrc, const Index &src_slice_origin_step_idx) |
| template<index_t IDst> | |
| __device__ void | MoveDstSliceWindow (const DstDescs &dst_descs, Number< IDst > iDst, const Index &dst_slice_origin_step_idx) |
Static Public Member Functions | |
| template<typename Descs, typename Indices, enable_if_t< Descs::Size()==Indices::Size(), bool > = false> | |
| static constexpr auto | MakeCoordinates (const Descs &descs, const Indices &indices) |
| static __device__ constexpr auto | GetCoordinateResetStep () |
Static Public Attributes | |
| static constexpr auto | I0 = Number<0>{} |
| static constexpr index_t | nDim = SliceLengths::Size() |
| static constexpr index_t | nSrc = SrcDescs::Size() |
| static constexpr index_t | nDst = DstDescs::Size() |
| static constexpr auto | scalar_per_access |
Member Typedef Documentation
◆ DstCoords
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
| using ck::ThreadwiseTensorSliceTransfer_v7< SrcDatas, DstDatas, SrcDescs, DstDescs, ElementwiseOperation, DstInMemOps, SliceLengths, DimAccessOrder, VectorDim, ScalarPerVector, SrcResetCoordinateAfterRunFlags, DstResetCoordinateAfterRunFlags >::DstCoords = decltype(MakeCoordinates(DstDescs{}, StaticallyIndexedArray<Index, nDst>{})) |
◆ Index
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
| using ck::ThreadwiseTensorSliceTransfer_v7< SrcDatas, DstDatas, SrcDescs, DstDescs, ElementwiseOperation, DstInMemOps, SliceLengths, DimAccessOrder, VectorDim, ScalarPerVector, SrcResetCoordinateAfterRunFlags, DstResetCoordinateAfterRunFlags >::Index = MultiIndex<nDim> |
◆ SpaceFillingCurve
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
| using ck::ThreadwiseTensorSliceTransfer_v7< SrcDatas, DstDatas, SrcDescs, DstDescs, ElementwiseOperation, DstInMemOps, SliceLengths, DimAccessOrder, VectorDim, ScalarPerVector, SrcResetCoordinateAfterRunFlags, DstResetCoordinateAfterRunFlags >::SpaceFillingCurve |
Initial value:
SpaceFillingCurve< SliceLengths, DimAccessOrder, remove_cv_t< decltype(scalar_per_access)> > SpaceFillingCurve
Definition threadwise_tensor_slice_transfer_v7.hpp:69
static constexpr auto scalar_per_access
Definition threadwise_tensor_slice_transfer_v7.hpp:66
◆ SrcCoords
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
| using ck::ThreadwiseTensorSliceTransfer_v7< SrcDatas, DstDatas, SrcDescs, DstDescs, ElementwiseOperation, DstInMemOps, SliceLengths, DimAccessOrder, VectorDim, ScalarPerVector, SrcResetCoordinateAfterRunFlags, DstResetCoordinateAfterRunFlags >::SrcCoords = decltype(MakeCoordinates(SrcDescs{}, StaticallyIndexedArray<Index, nSrc>{})) |
Constructor & Destructor Documentation
◆ ThreadwiseTensorSliceTransfer_v7()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
inlineconstexpr |
Member Function Documentation
◆ GetCoordinateResetStep()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
inlinestaticconstexpr |
◆ MakeCoordinates()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
template<typename Descs, typename Indices, enable_if_t< Descs::Size()==Indices::Size(), bool > = false>
|
inlinestaticconstexpr |
◆ MoveDstSliceWindow()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
template<index_t IDst>
|
inline |
◆ MoveSrcSliceWindow()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
template<index_t ISrc>
|
inline |
◆ Run()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
template<typename SrcBuffers, typename DstBuffers, enable_if_t< SrcDescs::Size()==SrcBuffers::Size() &&DstDescs::Size()==DstBuffers::Size(), bool > = false>
|
inline |
◆ SetDstSliceOrigins()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
template<typename Indices, enable_if_t< DstDescs::Size()==Indices::Size(), bool > = false>
|
inline |
◆ SetSrcSliceOrigins()
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
template<typename Indices, enable_if_t< SrcDescs::Size()==Indices::Size(), bool > = false>
|
inline |
Member Data Documentation
◆ I0
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
staticconstexpr |
◆ nDim
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
staticconstexpr |
◆ nDst
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
staticconstexpr |
◆ nSrc
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
staticconstexpr |
◆ scalar_per_access
template<typename SrcDatas, typename DstDatas, typename SrcDescs, typename DstDescs, typename ElementwiseOperation, typename DstInMemOps, typename SliceLengths, typename DimAccessOrder, index_t VectorDim, index_t ScalarPerVector, typename SrcResetCoordinateAfterRunFlags, typename DstResetCoordinateAfterRunFlags>
|
staticconstexpr |
Initial value:
__host__ __device__ constexpr auto generate_sequence(F, Number< N >)
Definition sequence_helper.hpp:18
Definition threadwise_tensor_slice_transfer_util.hpp:20
The documentation for this struct was generated from the following file: