/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_elementwise_normalization_impl.hpp Source File#
device_elementwise_normalization_impl.hpp
Go to the documentation of this file.
588 str << "VectorSize_X" << XSrcVectorSize << "_Gamma" << GammaSrcVectorSize << "_Beta" << BetaSrcVectorSize << "_Y" << YDstVectorSize << ">";
float launch_and_time_kernel(const StreamConfig &stream_config, F kernel, dim3 grid_dim, dim3 block_dim, std::size_t lds_byte, Args... args)
Definition: kernel_launch.hpp:13
__host__ constexpr __device__ auto integer_least_multiple(X x, Y y)
Definition: math.hpp:78
auto make_tuple_from_array(const std::vector< index_t > &lengths, Number< arraySize >)
Definition: device_reduce_common.hpp:65
auto make_tuple_from_array_and_index_seq(const std::vector< index_t > &lengths, Sequence< Ns... >)
Definition: device_reduce_common.hpp:59
Definition: ck.hpp:264
__host__ constexpr __device__ auto make_naive_tensor_descriptor(const Tuple< Lengths... > &lengths, const Tuple< Strides... > &strides)
Definition: tensor_descriptor_helper.hpp:49
__host__ constexpr __device__ auto generate_tuple(F &&f, Number< N >)
Definition: tuple_helper.hpp:15
__host__ constexpr __device__ auto make_merge_transform(const LowLengths &low_lengths)
Definition: multi_index_transform_helper.hpp:55
__global__ void kernel_elementwise_layernorm(const InGrid2dDescTuple in_grid_2d_desc_tuple, const GridDesc_M_K x_grid_desc_m_k, const GridDesc_M_K gamma_grid_desc_m_k, const GridDesc_M_K beta_grid_desc_m_k, const GridDesc_M_K y_grid_desc_m_k, index_t num_k_block_tile_iteration, AccDataType epsilon, const InDataTypePointerTuple p_in_global_tuple, const GammaDataType *const __restrict__ p_gamma_global, const BetaDataType *const __restrict__ p_beta_global, YDataType *const __restrict__ p_y_global, const XElementwiseOperation x_elementwise_op, const YElementwiseOperation y_elementwise_op)
Definition: device_elementwise_normalization_impl.hpp:35
__host__ constexpr __device__ auto make_unmerge_transform(const UpLengths &up_lengths, integral_constant< bool, Use24BitIntegerCalculation >=integral_constant< bool, false >{})
Definition: multi_index_transform_helper.hpp:90
__host__ constexpr __device__ auto transform_tensor_descriptor(const OldTensorDescriptor &old_tensor_desc, const NewTransforms &new_transforms, NewLowerDimensionOldVisibleIdss, NewUpperDimensionNewVisibleIdss)
Definition: tensor_descriptor.hpp:319
__host__ constexpr __device__ auto make_right_pad_transform(const LowLength &low_length, const RightPadLength &right_pad, integral_constant< bool, SkipIsValidCheck >=integral_constant< bool, false >{})
Definition: multi_index_transform_helper.hpp:37
Definition: stream_config.hpp:10
Definition: gridwise_elementwise_layernorm_welford_variance.hpp:42
Definition: sequence.hpp:43
typename conditional< kHasContent, type0, type1 >::type type
Definition: sequence.hpp:256
Definition: integral_constant.hpp:10
Definition: device_base.hpp:50
Definition: device_base.hpp:61
Definition: device_elementwise_normalization.hpp:25
Definition: device_elementwise_normalization_impl.hpp:264
std::array< std::vector< index_t >, NumInput > inStridesArray_
Definition: device_elementwise_normalization_impl.hpp:358
YElementwiseOperation y_elementwise_op_
Definition: device_elementwise_normalization_impl.hpp:365
AccDataType epsilon_
Definition: device_elementwise_normalization_impl.hpp:350
GridDesc_M_K gamma_grid_desc_m_k_
Definition: device_elementwise_normalization_impl.hpp:373
size_t gridSize_
Definition: device_elementwise_normalization_impl.hpp:369
GridDesc_M_K y_grid_desc_m_k_
Definition: device_elementwise_normalization_impl.hpp:375
XElementwiseOperation x_elementwise_op_
Definition: device_elementwise_normalization_impl.hpp:364
std::vector< index_t > betaStrides_
Definition: device_elementwise_normalization_impl.hpp:361
std::vector< index_t > gammaStrides_
Definition: device_elementwise_normalization_impl.hpp:360
bool sweep_once_
Definition: device_elementwise_normalization_impl.hpp:376
int x_lds_size_
Definition: device_elementwise_normalization_impl.hpp:377
int blkGroupSize_
Definition: device_elementwise_normalization_impl.hpp:367
InGrid2dDescTuple in_grid_2d_desc_tuple_
Definition: device_elementwise_normalization_impl.hpp:371
YDataType * p_y_
Definition: device_elementwise_normalization_impl.hpp:355
std::vector< index_t > Lengths_
Definition: device_elementwise_normalization_impl.hpp:357
GridDesc_M_K x_grid_desc_m_k_
Definition: device_elementwise_normalization_impl.hpp:372
GridDesc_M_K beta_grid_desc_m_k_
Definition: device_elementwise_normalization_impl.hpp:374
std::vector< index_t > yStrides_
Definition: device_elementwise_normalization_impl.hpp:362
InDataTypePointerTuple in_dev_buffers_
Definition: device_elementwise_normalization_impl.hpp:352
std::vector< index_t > xStrides_
Definition: device_elementwise_normalization_impl.hpp:359
const GammaDataType * p_gamma_
Definition: device_elementwise_normalization_impl.hpp:353
int numBlockTileIteration_
Definition: device_elementwise_normalization_impl.hpp:368
const BetaDataType * p_beta_
Definition: device_elementwise_normalization_impl.hpp:354
Argument(const std::vector< index_t > lengths, const std::array< std::vector< index_t >, NumInput > inStridesArray, const std::vector< index_t > gammaStrides, const std::vector< index_t > betaStrides, const std::vector< index_t > yStrides, const std::vector< index_t > reduceDims, XElementwiseOperation x_elementwise_op, YElementwiseOperation y_elementwise_op, double epsilon, const std::array< const void *, NumInput > in_dev_buffers, const GammaDataType *p_gamma, const BetaDataType *p_beta, YDataType *p_y)
Definition: device_elementwise_normalization_impl.hpp:265
Definition: device_elementwise_normalization_impl.hpp:381
float Run(const BaseArgument *p_arg, const StreamConfig &stream_config=StreamConfig{}) override
Definition: device_elementwise_normalization_impl.hpp:431
float Run(const Argument &arg, const StreamConfig &stream_config=StreamConfig{})
Definition: device_elementwise_normalization_impl.hpp:382
Definition: device_elementwise_normalization_impl.hpp:104
std::unique_ptr< BaseInvoker > MakeInvokerPointer() override
Definition: device_elementwise_normalization_impl.hpp:574
std::string GetTypeString() const override
Definition: device_elementwise_normalization_impl.hpp:579
static constexpr index_t M_BlockTileSize
Definition: device_elementwise_normalization_impl.hpp:117
static auto GenerateSrcGrid2dDescTuple(Number< TupleSize >)
Definition: device_elementwise_normalization_impl.hpp:201
std::unique_ptr< BaseArgument > MakeArgumentPointer(const std::vector< index_t > lengths, const std::array< std::vector< index_t >, NumInput > inStridesArray, const std::vector< index_t > gammaStrides, const std::vector< index_t > betaStrides, const std::vector< index_t > yStrides, const std::vector< index_t > reduceDims, double epsilon, const std::array< const void *, NumInput > in_dev_buffers, const void *p_gamma, const void *p_beta, void *p_y, XElementwiseOperation x_elementwise_op, YElementwiseOperation y_elementwise_op) override
Definition: device_elementwise_normalization_impl.hpp:545
static constexpr index_t K_BlockTileSize
Definition: device_elementwise_normalization_impl.hpp:119
YDataType XDataType
Definition: device_elementwise_normalization_impl.hpp:107
decltype(GenerateInDataTypePointerTuple()) InDataTypePointerTuple
Definition: device_elementwise_normalization_impl.hpp:132
static auto GenerateInDataTypePointerTuple()
Definition: device_elementwise_normalization_impl.hpp:122
GridwiseElementwiseLayernormWelfordVariance_mk_to_mk< InDataTypePointerTuple, XDataType, GammaDataType, BetaDataType, YDataType, AccDataType, XElementwiseOperation, YElementwiseOperation, InGrid2dDescTuple, GridDesc_M_K, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, XYSrcVectorDim, XSrcVectorSize, GammaSrcVectorDim, GammaSrcVectorSize, BetaSrcVectorDim, BetaSrcVectorSize, XYSrcVectorDim, YDstVectorSize, false > GridwiseReduceLayernormGeneric
Definition: device_elementwise_normalization_impl.hpp:235
GridwiseElementwiseLayernormWelfordVariance_mk_to_mk< InDataTypePointerTuple, XDataType, GammaDataType, BetaDataType, YDataType, AccDataType, XElementwiseOperation, YElementwiseOperation, InGrid2dDescTuple, GridDesc_M_K, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, XYSrcVectorDim, XSrcVectorSize, GammaSrcVectorDim, GammaSrcVectorSize, BetaSrcVectorDim, BetaSrcVectorSize, XYSrcVectorDim, YDstVectorSize, true > GridwiseReduceLayernormSweepOnce
Definition: device_elementwise_normalization_impl.hpp:261
decltype(MakeSrc2dDescriptor({1}, {1}, 1, 1)) GridDesc_M_K
Definition: device_elementwise_normalization_impl.hpp:209
static constexpr int NumInput
Definition: device_elementwise_normalization_impl.hpp:105
bool IsSupportedArgument(const BaseArgument *p_arg) override
Definition: device_elementwise_normalization_impl.hpp:438
static auto MakeSrc2dDescriptor(const std::vector< index_t > &inLengths, const std::vector< index_t > &inStrides, int blkGroupSize, int numBlockTileIteration)
Definition: device_elementwise_normalization_impl.hpp:134
decltype(GenerateSrcGrid2dDescTuple(Number< NumInput >{})) InGrid2dDescTuple
Definition: device_elementwise_normalization_impl.hpp:207