C++ API. More...


Go to the source code of this file.
Namespaces | |
| namespace | gpu |
| namespace | gpu::xetla |
| namespace | gpu::xetla::subgroup |
Functions | |
| template<typename T_dst , typename T_src > | |
| __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)> | gpu::xetla::subgroup::elemwise_cvt (T_dst &dst, T_src &src) |
| Is the element wise data conversion, the src and dst tile should have the same layout. | |
| template<typename T_dst , typename T_src > | |
| __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 > | gpu::xetla::subgroup::elemwise_cvt (T_dst &dst, T_src &src) |
| Is the element wise data conversion from floating point to integral, the src and dst tile should have the same layout. | |
| template<typename T_dst , typename T_src > | |
| __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 > | gpu::xetla::subgroup::elemwise_cvt (T_dst &dst, T_src &src, float scale) |
| element wise data conversion with scaling, the src and dst tile should have the same layout. | |
| template<typename T > | |
| __XETLA_API std::enable_if_t< T::register_layout==reg_layout::vnni_tiled > | gpu::xetla::subgroup::vnni_convert (T &mat_Acc) |
| Converts tiled layout to vnni_tiled layout format. | |
| template<typename T > | |
| __XETLA_API std::enable_if_t< T::register_layout==reg_layout::tiled > | gpu::xetla::subgroup::vnni_reverse (T &mat_Acc) |
| Converts vnni_tiled layout format to tiled layout. | |
| template<typename T > | |
| __XETLA_API std::enable_if_t< T::register_layout==reg_layout::transpose_tiled > | gpu::xetla::subgroup::vnni_reverse (T &mat_Acc) |
| Converts vnni_tiled layout format to transpose_tiled layout. | |
| template<typename T_dst , typename T_src > | |
| __XETLA_API std::enable_if_t< is_same_layout< T_dst, T_src >::value > | gpu::xetla::subgroup::vnni_transform (T_dst &dst, T_src &src) |
| Changes vnni layout. | |
| template<typename T_dst , typename T_src > | |
| __XETLA_API std::enable_if_t<(T_dst::register_layout==reg_layout::tiled) &&(T_src::register_layout==reg_layout::tiled) &&(T_src::tile_size_x==T_dst::tile_size_x) &&(T_src::tile_size_y==1)> | gpu::xetla::subgroup::row_broadcast (T_dst &dst, T_src &src) |
| Broadcasts 1d src tile to the entire 2d tile, as well as do the data conversion. | |
| template<typename T_dst , typename T_src > | |
| __XETLA_API std::enable_if_t<(T_dst::register_layout==reg_layout::linear) &&(T_src::register_layout==reg_layout::tiled) &&(T_src::tile_size_x==T_dst::tile_size_x) &&(T_src::tile_size_y==T_dst::tile_size_y) &&(T_dst::tile_size_x==T_dst::block_size_x) &&(T_dst::tile_size_y==T_dst::block_size_y) &&(std::is_same< typename T_dst::dtype, typename T_src::dtype >::value)> | gpu::xetla::subgroup::layout_convert (T_dst &dst, T_src &src) |
| convert 2d tile in a tiled register layout to a 2d tile in a linear register layout | |
| template<typename T_dst , typename T_src > | |
| __XETLA_API std::enable_if_t<(T_dst::register_layout==reg_layout::tiled) &&(T_src::register_layout==reg_layout::linear) &&(T_dst::tile_size_x==T_src::tile_size_x) &&(T_dst::tile_size_y==T_src::tile_size_y) &&(T_src::tile_size_x==T_src::block_size_x) &&(T_src::tile_size_y==T_src::block_size_y) &&(std::is_same< typename T_dst::dtype, typename T_src::dtype >::value)> | gpu::xetla::subgroup::layout_convert (T_dst &dst, T_src &src) |
| convert 2d tile in a linear register layout to a 2d tile in a tiled register layout | |
C++ API.