smoothquant_pipeline_problem.hpp Source File

smoothquant_pipeline_problem.hpp Source File#

Composable Kernel: smoothquant_pipeline_problem.hpp Source File
smoothquant_pipeline_problem.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2018-2025, Advanced Micro Devices, Inc. All rights reserved.
3
4#pragma once
5
7
8namespace ck_tile {
9
10// Y = X * SmoothScale, QY = RowwiseDynamicQuant(Y) = SaturateCast(Y / YScale)
11template <typename XDataType_,
12 typename SmoothScaleDataType_,
13 typename ComputeDataType_,
14 typename YScaleDataType_,
15 typename QYDataType_,
16 typename BlockShape_,
17 bool kPadN_,
18 bool kTwoPass_>
20{
27
28 static constexpr bool kNeedCrossLaneSync = BlockShape::ThreadPerWarp_N > 1;
29 static constexpr bool kNeedCrossWarpSync = BlockShape::WarpPerBlock_N > 1;
30
31 static constexpr bool kPadN = kPadN_;
32 static constexpr bool kTwoPass = kTwoPass_;
33};
34
35} // namespace ck_tile
Definition tile/core/algorithm/cluster_descriptor.hpp:13
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
Definition smoothquant_pipeline_problem.hpp:20
static constexpr bool kNeedCrossLaneSync
Definition smoothquant_pipeline_problem.hpp:28
remove_cvref_t< YScaleDataType_ > YScaleDataType
Definition smoothquant_pipeline_problem.hpp:24
remove_cvref_t< QYDataType_ > QYDataType
Definition smoothquant_pipeline_problem.hpp:25
remove_cvref_t< XDataType_ > XDataType
Definition smoothquant_pipeline_problem.hpp:21
static constexpr bool kPadN
Definition smoothquant_pipeline_problem.hpp:31
remove_cvref_t< BlockShape_ > BlockShape
Definition smoothquant_pipeline_problem.hpp:26
remove_cvref_t< SmoothScaleDataType_ > SmoothScaleDataType
Definition smoothquant_pipeline_problem.hpp:22
static constexpr bool kTwoPass
Definition smoothquant_pipeline_problem.hpp:32
static constexpr bool kNeedCrossWarpSync
Definition smoothquant_pipeline_problem.hpp:29
remove_cvref_t< ComputeDataType_ > ComputeDataType
Definition smoothquant_pipeline_problem.hpp:23