35template <
typename tile_op_t, gpu_arch arch_tag,
class enable =
void>
38template <
typename tile_op_t_, gpu_arch arch_tag>
40 std::enable_if_t<(arch_tag == gpu_arch::Xe)>> {
46 inline arguments_t(
typename tile_op_t::arguments_t tile_op_args_)
47 : tile_op_args(tile_op_args_) {}
49 template <
typename mat_out_t,
typename mat_in_t,
typename coord_t>
51 mat_in_t &mat_in,
const coord_t &coord,
const arguments_t &args) {
54 tile_op(mat_out, coord, args.tile_op_args);
61template <
typename tile_op_t, gpu_arch arch_tag,
class enable =
void>
64template <
typename tile_op_t_, gpu_arch arch_tag>
66 std::enable_if_t<(arch_tag == gpu_arch::Xe)>> {
73 inline arguments_t(
typename tile_op_t::arguments_t tile_op_args_)
74 : tile_op_args(tile_op_args_) {}
76 template <
typename mat_out_t,
typename mat_in_t,
77 typename dtype_sat =
typename mat_out_t::dtype,
typename coord_t>
79 mat_in_t &mat_in,
const coord_t &coord,
const arguments_t &args) {
81 " mat_in and mat_out should be the same layout");
83 typename mat_out_t::tile_desc>;
92 tile_op(matAcc, coord, args.tile_op_args);
98 template <
typename dtype_sat,
typename matAcc_t,
typename coord_t>
100 matAcc_t &matAcc,
const coord_t &coord,
const arguments_t &args) {
101 operator()<matAcc_t, matAcc_t, dtype_sat>(matAcc, matAcc, coord, args);
#define __XETLA_API
Definition common.hpp:43
#define KERNEL_FUNC
KERNEL_FUNC macro.
Definition common.hpp:39
Definition limitation.hpp:457
__XETLA_API std::enable_if_t<(T_src::register_layout !=reg_layout::linear) &&(T_dst::register_layout !=reg_layout::linear) &&is_same_layout< T_dst, T_src >::value &&(!is_floating_to_integer< T_dst, T_src >::value)> elemwise_cvt(T_dst &dst, T_src &src)
Is the element wise data conversion, the src and dst tile should have the same layout.
Definition op_function.hpp:40
tile_op_t::arguments_t tile_op_args
Definition quant_op_functor.hpp:44
arguments_t(typename tile_op_t::arguments_t tile_op_args_)
Definition quant_op_functor.hpp:46
tile_op_t_ tile_op_t
Definition quant_op_functor.hpp:42
__XETLA_API KERNEL_FUNC void operator()(mat_out_t &mat_out, mat_in_t &mat_in, const coord_t &coord, const arguments_t &args)
Definition quant_op_functor.hpp:50
Is the dequantization op functor.
Definition quant_op_functor.hpp:36
Definition common.hpp:213
__XETLA_API KERNEL_FUNC void operator()(matAcc_t &matAcc, const coord_t &coord, const arguments_t &args)
Definition quant_op_functor.hpp:99
tile_op_t_ tile_op_t
Definition quant_op_functor.hpp:68
__XETLA_API KERNEL_FUNC void operator()(mat_out_t &mat_out, mat_in_t &mat_in, const coord_t &coord, const arguments_t &args)
Definition quant_op_functor.hpp:78
tile_op_t::arguments_t tile_op_args
Definition quant_op_functor.hpp:71
arguments_t(typename tile_op_t::arguments_t tile_op_args_)
Definition quant_op_functor.hpp:73
Is the quantization op functor.
Definition quant_op_functor.hpp:62
Is a struct contains some register file.
Definition api.hpp:99