18#if CK_TILE_USE_CUSTOM_DATA_TYPE
19template <
typename Y,
typename X>
22 return static_cast<Y
>(x);
28 std::enable_if_t<!(std::is_const_v<Y> || std::is_const_v<X>),
bool> =
false>
31 static_assert(!std::is_reference_v<Y> && !std::is_reference_v<X>);
32 return static_cast<Y
>(x);
38 std::enable_if_t<std::is_const_v<Y> || std::is_const_v<X>,
bool> =
false>
41 static_assert(!std::is_reference_v<Y> && !std::is_reference_v<X>);
43 using non_const_y = std::remove_const_t<Y>;
44 using non_const_x = std::remove_const_t<X>;
48#define CK_TILE_TYPE_CONVERT(dtype_, dname_, stype_, sname_) \
50 CK_TILE_HOST_DEVICE constexpr dtype_ type_convert<dtype_, stype_>(stype_ x) \
52 return sname_##_to_##dname_(x); \
67#undef CK_TILE_TYPE_CONVERT
75template <
typename Y,
typename X>
78#define CK_TILE_SCALED_TYPE_CONVERT(dtype_, dname_, stype_, sname_) \
80 CK_TILE_HOST_DEVICE constexpr dtype_ scaled_type_convert<dtype_, stype_>(stype_ x, \
83 return sname_##_to_##dname_(x, scale); \
86 CK_TILE_HOST_DEVICE constexpr dtype_ type_convert<dtype_, stype_>(stype_ x) \
88 return sname_##_to_##dname_(x, 1.f); \
103#undef CK_TILE_SCALED_TYPE_CONVERT
#define CK_TILE_HOST_DEVICE
Definition config.hpp:42
Definition tile/core/algorithm/cluster_descriptor.hpp:13
_Float16 fp16x2_t
Definition half.hpp:385
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
bfloat16_t bf16_t
Definition bfloat16.hpp:113
_Float16 fp16_t
Definition half.hpp:110
_BitInt(8) fp8_t
Definition float8.hpp:204
bfloat16_t bf16x2_t
Definition pk_fp4.hpp:24
pk_float4_e2m1_t pk_fp4_t
Definition pk_fp4.hpp:151
CK_TILE_HOST_DEVICE constexpr Y scaled_type_convert(X x, float scale)
unsigned _BitInt(8) bf8_t
Definition float8.hpp:206
float fp32x2_t
Definition pk_fp4.hpp:22
CK_TILE_HOST_DEVICE constexpr Y type_convert(X x)
Definition tile/core/numeric/type_convert.hpp:29
signed char int8_t
Definition stdint.h:121
#define CK_TILE_TYPE_CONVERT(dtype_, dname_, stype_, sname_)
Definition tile/core/numeric/type_convert.hpp:48
#define CK_TILE_SCALED_TYPE_CONVERT(dtype_, dname_, stype_, sname_)
Definition tile/core/numeric/type_convert.hpp:78