gridwise_permute.hpp Source File#
gridwise_permute.hpp
Go to the documentation of this file.
__host__ __device__ constexpr auto integer_divide_ceil(X x, Y y)
Definition utility/math.hpp:72
Definition ck.hpp:268
__host__ __device__ constexpr auto make_multi_index(Xs &&... xs)
Definition array_multi_index.hpp:15
__host__ __device__ constexpr auto make_pass_through_transform(const LowLength &low_length)
Definition multi_index_transform_helper.hpp:12
__host__ __device__ constexpr auto make_naive_tensor_descriptor(const Tuple< Lengths... > &lengths, const Tuple< Strides... > &strides)
Definition tensor_descriptor_helper.hpp:49
__global__ void kernel_nd_permute(const InGridDesc in_grid_desc, const OutGridDesc out_grid_desc, const InDataType *p_in_global, OutDataType *p_out_global, const ElementwiseOperation elementwise_op, const Block2TileMap block_2_tile_map)
Definition gridwise_permute.hpp:25
__host__ __device__ constexpr auto make_merge_transform(const LowLengths &low_lengths)
Definition multi_index_transform_helper.hpp:55
__host__ __device__ constexpr auto generate_sequence_v2(F &&f, Number< N >)
Definition sequence_helper.hpp:25
__host__ __device__ constexpr auto generate_tuple(F &&f, Number< N >)
Definition tuple_helper.hpp:21
__host__ __device__ constexpr auto make_tuple(Xs &&... xs)
Definition utility/tuple.hpp:211
__host__ __device__ constexpr auto transform_tensor_descriptor(const OldTensorDescriptor &old_tensor_desc, const NewTransforms &new_transforms, NewLowerDimensionOldVisibleIdss, NewUpperDimensionNewVisibleIdss)
Definition tensor_description/tensor_descriptor.hpp:319
__host__ __device__ constexpr auto make_dynamic_buffer(T *p, ElementSpaceSize element_space_size)
Definition dynamic_buffer.hpp:472
Definition gridwise_permute.hpp:76
Block2TileMap & operator=(const Block2TileMap &)=delete
Block2TileMap(const InGridDesc &desc)
Definition gridwise_permute.hpp:91
__host__ constexpr index_t CalculateGridSize(const InGridDesc &desc) const
Definition gridwise_permute.hpp:93
static constexpr index_t NumDim
Definition gridwise_permute.hpp:77
Block2TileMap & operator=(Block2TileMap &&)=delete
__host__ __device__ constexpr auto CalculateBottomIndex(const TopIdx &idx_top) const
Definition gridwise_permute.hpp:108
Block2TileMap()=delete
Block2TileMap(Block2TileMap &&)=delete
Block2TileMap(const Block2TileMap &)=default
~Block2TileMap()=default
Definition gridwise_permute.hpp:60
__host__ static __device__ constexpr bool CheckValidity(const InGridDesc &in_grid_desc, const OutGridDesc &out_grid_desc)
Definition gridwise_permute.hpp:182
ThisThreadBlock< BlockSize > ThisThreadBlock
Definition gridwise_permute.hpp:73
__host__ static __device__ constexpr auto GetMergedDesc(const GridDesc &desc)
Definition gridwise_permute.hpp:150
__host__ static __device__ constexpr index_t GetSharedMemoryNumberOfByte()
Definition gridwise_permute.hpp:168
__host__ static __device__ constexpr auto GetInBlockDesc_NPerBlock_HPerBlock_WPerBlock()
Definition gridwise_permute.hpp:137
__host__ static __device__ constexpr auto MakeDefaultBlock2TileMap(const InGridDesc &desc)
Definition gridwise_permute.hpp:177
Block2TileMap DefaultBlock2TileMap
Definition gridwise_permute.hpp:134
static __device__ void Run(const InGridDesc in_grid_desc, const OutGridDesc out_grid_desc, const InDataType *p_in_global, OutDataType *p_out_global, void *__restrict__ p_shared, const ElementwiseOperation elementwise_op, const Block2TileMap &block_2_tile_map)
Definition gridwise_permute.hpp:204
Definition multi_index_transform.hpp:13
Definition utility/sequence.hpp:43
Blockwise data transfer.
Definition thread_group_tensor_slice_transfer_v4r1.hpp:46
__device__ void Run(const SrcDesc &src_desc, const SrcBuffer &src_buf, const DstDesc &dst_desc, DstBuffer &dst_buf, Number< ThreadScratchId > thread_scratch_id)
Definition thread_group_tensor_slice_transfer_v4r1.hpp:143
Definition functional2.hpp:33
Definition tensor_operation/gpu/element/unary_element_wise_operation.hpp:340