17 return type_convert<T>(0.0f);
21 typename = std::enable_if_t<std::is_same_v<T, float> || std::is_same_v<T, double> ||
22 std::is_same_v<T, int32_t> || std::is_same_v<T, int8_t>>>
29 typename = std::enable_if_t<std::is_same_v<T, half_t> || std::is_same_v<T, bf16_t> ||
30 std::is_same_v<T, fp8_t> || std::is_same_v<T, bf8_t>>>
33 float y_ = type_convert<float>(y);
34 float x_ = type_convert<float>(x);
36 return type_convert<T>(y_ + x_);
45 return type_convert<T>(0.0f);
49 typename = std::enable_if_t<std::is_same_v<T, float> || std::is_same_v<T, double> ||
50 std::is_same_v<T, int32_t> || std::is_same_v<T, int8_t>>>
57 typename = std::enable_if_t<std::is_same_v<T, half_t> || std::is_same_v<T, bf16_t> ||
58 std::is_same_v<T, fp8_t> || std::is_same_v<T, bf8_t>>>
61 float y_ = type_convert<float>(y);
62 float x_ = type_convert<float>(x);
63 return type_convert<T>(y_ + (x_ * x_));
70 typename = std::enable_if_t<std::is_same_v<T, float> || std::is_same_v<T, double> ||
71 std::is_same_v<T, int32_t> || std::is_same_v<T, int8_t> ||
72 std::is_same_v<T, half_t> || std::is_same_v<T, bf16_t> ||
73 std::is_same_v<T, fp8_t> || std::is_same_v<T, bf8_t>>>
80 typename = std::enable_if_t<std::is_same_v<T, float> || std::is_same_v<T, double> ||
81 std::is_same_v<T, int32_t> || std::is_same_v<T, int8_t> ||
82 std::is_same_v<T, half_t> || std::is_same_v<T, bf16_t> ||
83 std::is_same_v<T, fp8_t> || std::is_same_v<T, bf8_t>>>
93 typename = std::enable_if_t<std::is_same_v<T, float> || std::is_same_v<T, double> ||
94 std::is_same_v<T, int32_t> || std::is_same_v<T, int8_t> ||
95 std::is_same_v<T, half_t> || std::is_same_v<T, bf16_t> ||
96 std::is_same_v<T, fp8_t> || std::is_same_v<T, bf8_t>>>
102 template <
typename T,
103 typename = std::enable_if_t<std::is_same_v<T, float> || std::is_same_v<T, double> ||
104 std::is_same_v<T, int32_t> || std::is_same_v<T, int8_t> ||
105 std::is_same_v<T, half_t> || std::is_same_v<T, bf16_t> ||
106 std::is_same_v<T, fp8_t> || std::is_same_v<T, bf8_t>>>
#define CK_TILE_HOST_DEVICE
Definition: config.hpp:42
Definition: cluster_descriptor.hpp:13
CK_TILE_HOST_DEVICE bfloat16_t abs(const bfloat16_t &x)
Definition: bfloat16.hpp:404
constexpr CK_TILE_HOST_DEVICE T max(T x)
Definition: math.hpp:161
Definition: reduce_operator.hpp:91
constexpr CK_TILE_HOST_DEVICE T operator()(const T &y, const T x) const
Definition: reduce_operator.hpp:107
static constexpr CK_TILE_HOST_DEVICE T GetIdentityValue()
Definition: reduce_operator.hpp:97
Definition: reduce_operator.hpp:13
constexpr CK_TILE_HOST_DEVICE T operator()(T &y, T x) const
Definition: reduce_operator.hpp:31
static constexpr CK_TILE_HOST_DEVICE T GetIdentityValue()
Definition: reduce_operator.hpp:15
constexpr CK_TILE_HOST_DEVICE T operator()(const T &y, const T x) const
Definition: reduce_operator.hpp:23
Definition: reduce_operator.hpp:68
static constexpr CK_TILE_HOST_DEVICE T GetIdentityValue()
Definition: reduce_operator.hpp:74
constexpr CK_TILE_HOST_DEVICE T operator()(const T &y, const T x) const
Definition: reduce_operator.hpp:84
Definition: reduce_operator.hpp:41
constexpr CK_TILE_HOST_DEVICE T operator()(const T &y, const T x) const
Definition: reduce_operator.hpp:51
constexpr CK_TILE_HOST_DEVICE T operator()(T &y, T x) const
Definition: reduce_operator.hpp:59
static constexpr CK_TILE_HOST_DEVICE T GetIdentityValue()
Definition: reduce_operator.hpp:43
static constexpr CK_TILE_HOST_DEVICE T min()
Definition: numeric.hpp:20