DPC++ Runtime
Runtime libraries for oneAPI DPC++
matrix-tensorcore.hpp File Reference

Go to the source code of this file.

Classes

class  cl::sycl::ext::oneapi::experimental::matrix::precision::tf32
 
struct  cl::sycl::ext::oneapi::experimental::matrix::joint_matrix< T, NumRows, NumCols, Layout, Group >
 
struct  cl::sycl::ext::oneapi::detail::joint_matrix_load_impl< S, T, Use, NumRows, NumCols, Layout, Space, Cond >
 
struct  cl::sycl::ext::oneapi::detail::joint_matrix_load_impl< S, T, Use, NumRows, NumCols, Layout, Space, typename std::enable_if_t< Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > >
 
struct  cl::sycl::ext::oneapi::detail::joint_matrix_store_impl< T, NumRows, NumCols, Layout, Space, Cond >
 
struct  cl::sycl::ext::oneapi::detail::joint_matrix_store_impl< T, NumRows, NumCols, Layout, Space, typename std::enable_if_t< Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > >
 
struct  cl::sycl::ext::oneapi::detail::joint_matrix_mad_impl< T1, T2, M, K, N, LayoutA, LayoutB, LayoutC, Cond >
 
struct  cl::sycl::ext::oneapi::detail::joint_matrix_mad_impl< T1, T2, M, K, N, LayoutA, LayoutB, LayoutC, typename std::enable_if_t<(LayoutA==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||LayoutA==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major) &&(LayoutB==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||LayoutB==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major) &&(LayoutC==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||LayoutC==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major)> >
 

Namespaces

 cl
 We provide new interfaces for matrix muliply in this patch:
 
 cl::sycl
 
 cl::sycl::ext
 
 cl::sycl::ext::oneapi
 
 cl::sycl::ext::oneapi::experimental
 
 cl::sycl::ext::oneapi::experimental::matrix
 
 cl::sycl::ext::oneapi::experimental::matrix::precision
 
 cl::sycl::ext::oneapi::detail
 

Macros

#define __SYCL_JOINT_MATRIX_OVERLOAD(type, use, M, N, frag_type, frag_size)
 

Enumerations

enum  cl::sycl::ext::oneapi::experimental::matrix::matrix_use { cl::sycl::ext::oneapi::experimental::matrix::matrix_use::a, cl::sycl::ext::oneapi::experimental::matrix::matrix_use::b, cl::sycl::ext::oneapi::experimental::matrix::matrix_use::accumulator }
 
enum  cl::sycl::ext::oneapi::experimental::matrix::matrix_layout {
  cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major, cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major, cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::packed_a, cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::packed_b,
  cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major, cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major, cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::packed_a, cl::sycl::ext::oneapi::experimental::matrix::matrix_layout::packed_b
}
 

Functions

template<sycl::ext::oneapi::experimental::matrix::matrix_layout Layout>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_id ()
 
template<>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_id< sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major > ()
 
template<>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_id< sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > ()
 
template<sycl::ext::oneapi::experimental::matrix::matrix_layout LayoutA, sycl::ext::oneapi::experimental::matrix::matrix_layout LayoutB>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_pair_id ()
 
template<>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_pair_id< sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major, sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major > ()
 
template<>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_pair_id< sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major, sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > ()
 
template<>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_pair_id< sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major, sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major > ()
 
template<>
constexpr int cl::sycl::ext::oneapi::detail::get_layout_pair_id< sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major, sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > ()
 
template<typename Group , typename S , typename T , matrix_use Use, size_t NumRows, size_t NumCols, matrix_layout Layout, access::address_space Space, std::enable_if_t< std::is_same< S, T >::value||(std::is_same< S, precision::tf32 >::value &&std::is_same< T, float >::value), bool > = true>
void cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_load (Group sg, joint_matrix< S, Use, NumRows, NumCols, Layout, Group > &res, multi_ptr< T, Space > src, size_t stride)
 
template<typename Group , typename T , size_t NumRows, size_t NumCols, matrix_layout Layout, access::address_space Space>
void cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_store (Group sg, joint_matrix< T, matrix_use::accumulator, NumRows, NumCols, Layout, Group > &src, multi_ptr< T, Space > dst, size_t stride)
 
template<typename Group , typename T1 , typename T2 , std::size_t M, std::size_t K, std::size_t N, matrix_layout LayoutA, matrix_layout LayoutB, matrix_layout LayoutC>
joint_matrix< T2, matrix_use::accumulator, M, N, LayoutC, Group > cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_mad (Group sg, joint_matrix< T1, matrix_use::a, M, K, LayoutA, Group > A, joint_matrix< T1, matrix_use::b, K, N, LayoutB, Group > B, joint_matrix< T2, matrix_use::accumulator, M, N, LayoutC, Group > C)
 
float cl::sycl::ext::oneapi::experimental::matrix::round_to_tf32 (float a)
 

Macro Definition Documentation

◆ __SYCL_JOINT_MATRIX_OVERLOAD

#define __SYCL_JOINT_MATRIX_OVERLOAD (   type,
  use,
  M,
  N,
  frag_type,
  frag_size 
)
Value:
template <matrix_layout Layout> \
struct joint_matrix< \
type, matrix_use::use, M, N, Layout, sycl::sub_group, \
typename std::enable_if_t<Layout == matrix_layout::row_major || \
Layout == matrix_layout::col_major>> { \
frag_type data[frag_size]; \
};

Definition at line 31 of file matrix-tensorcore.hpp.

cl::sycl::detail::enable_if_t
typename std::enable_if< B, T >::type enable_if_t
Definition: stl_type_traits.hpp:24