DPC++ Runtime
Runtime libraries for oneAPI DPC++
matrix-jit.hpp File Reference
Include dependency graph for matrix-jit.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cl::sycl::ext::oneapi::experimental::matrix::spv_matrix_layout_traits< Layout >
 
struct  cl::sycl::ext::oneapi::experimental::matrix::spv_scope_traits< sycl::sub_group >
 
struct  cl::sycl::ext::oneapi::experimental::matrix::spv_scope_traits< sycl::group< D > >
 
class  cl::sycl::ext::oneapi::experimental::matrix::wi_data< T, NumRows, NumCols, Layout, Group >
 
struct  cl::sycl::ext::oneapi::experimental::matrix::joint_matrix< T, NumRows, NumCols, Layout, Group >
 
class  cl::sycl::ext::oneapi::experimental::matrix::wi_element< T, NumRows, NumCols, Layout, Group >
 
class  cl::sycl::ext::oneapi::experimental::matrix::wi_element< uint16_t, NumRows, NumCols, Layout, Group >
 
struct  cl::sycl::ext::oneapi::experimental::matrix::wi_element< uint16_t, NumRows, NumCols, Layout, Group >::Converter< T1, T2 >
 
struct  cl::sycl::ext::oneapi::experimental::matrix::wi_element< uint16_t, NumRows, NumCols, Layout, Group >::Converter< T, uint16_t >
 
class  cl::sycl::ext::oneapi::experimental::matrix::wi_element< sycl::ext::oneapi::experimental::bfloat16, NumRows, NumCols, Layout, Group >
 
class  cl::sycl::ext::oneapi::experimental::matrix::wi_data< T, NumRows, NumCols, Layout, Group >
 

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
 

Macros

#define SPV_MATRIX_LAYOUT_TRAITS(LAYOUT, SPV_LAYOUT)
 
#define OP(op)
 
#define OP(op)
 
#define OP(input_type, type, op)
 
#define OP(opassign, op)
 
#define OP(type, op)
 

Enumerations

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<typename Group , typename T , size_t NumRows, size_t NumCols, matrix_layout Layout = matrix_layout::row_major, access::address_space Space>
__SYCL_ALWAYS_INLINE void cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_load (Group sg, joint_matrix< T, NumRows, NumCols, Layout, Group > &res, multi_ptr< T, Space > src, size_t stride, matrix_layout MemL)
 
template<typename Group , typename T , size_t NumRows, size_t NumCols, matrix_layout MatL = matrix_layout::row_major, access::address_space Space>
__SYCL_ALWAYS_INLINE void cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_store (Group sg, joint_matrix< T, NumRows, NumCols, MatL, Group > &src, multi_ptr< T, Space > res, size_t stride, matrix_layout MemL)
 
template<typename Group , typename T1 , typename T2 , typename T3 , size_t M, size_t K, size_t N, matrix_layout LayoutA, matrix_layout LayoutB, matrix_layout LayoutC>
__SYCL_ALWAYS_INLINE joint_matrix< T3, M, N, LayoutC, Group > cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_mad (Group sg, joint_matrix< T1, M, K, LayoutA, Group > &mA, joint_matrix< T2, K, N, LayoutB, Group > &mB, joint_matrix< T3, M, N, LayoutC, Group > &mC)
 
template<typename Group , typename T , size_t NumRows, size_t NumCols, matrix_layout Layout, typename T2 >
__SYCL_ALWAYS_INLINE void cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_fill (Group sg, joint_matrix< T, NumRows, NumCols, Layout, Group > &res, const T2 v)
 

Macro Definition Documentation

◆ OP [1/5]

#define OP (   input_type,
  type,
  op 
)
Value:
friend type operator op( \
const wi_element<uint16_t, NumRows, NumCols, Layout, Group> &lhs, \
const uint16_t &rhs) { \
(void)lhs; \
(void)rhs; \
throw runtime_error("joint matrix is not supported on host device.", \
} \
friend type operator op( \
const uint16_t &lhs, \
const wi_element<uint16_t, NumRows, NumCols, Layout, Group> &rhs) { \
(void)lhs; \
(void)rhs; \
throw runtime_error("joint matrix is not supported on host device.", \
}

Definition at line 578 of file matrix-jit.hpp.

◆ OP [2/5]

#define OP (   op)
Value:
template <typename T2> wi_element &operator op##=(const T2 &rhs) { \
(void)rhs; \
throw runtime_error("joint matrix is not supported on host device.", \
}

Definition at line 578 of file matrix-jit.hpp.

◆ OP [3/5]

#define OP (   op)
Value:
wi_element &operator op##=(const uint16_t &rhs) { \
(void)rhs; \
throw runtime_error("joint matrix is not supported on host device.", \
}

Definition at line 578 of file matrix-jit.hpp.

◆ OP [4/5]

#define OP (   opassign,
  op 
)
Value:
wi_element &operator opassign( \
const sycl::ext::oneapi::experimental::bfloat16 &rhs) { \
(void)rhs; \
throw runtime_error("joint matrix is not supported on host device.", \
}

Definition at line 578 of file matrix-jit.hpp.

◆ OP [5/5]

#define OP (   type,
  op 
)
Value:
friend type operator op( \
const wi_element<sycl::ext::oneapi::experimental::bfloat16, NumRows, \
NumCols, Layout, Group> &, \
const sycl::ext::oneapi::experimental::bfloat16 &) { \
throw runtime_error("joint matrix is not supported on host device.", \
} \
friend type operator op( \
const sycl::ext::oneapi::experimental::bfloat16 &, \
const wi_element<sycl::ext::oneapi::experimental::bfloat16, NumRows, \
NumCols, Layout, Group> &) { \
throw runtime_error("joint matrix is not supported on host device.", \
}

Definition at line 578 of file matrix-jit.hpp.

◆ SPV_MATRIX_LAYOUT_TRAITS

#define SPV_MATRIX_LAYOUT_TRAITS (   LAYOUT,
  SPV_LAYOUT 
)
Value:
template <> struct spv_matrix_layout_traits<LAYOUT> { \
static constexpr __spv::MatrixLayout value = SPV_LAYOUT; \
};

Definition at line 28 of file matrix-jit.hpp.

__spv::MatrixLayout
MatrixLayout
Definition: spirv_types.hpp:111
PI_INVALID_DEVICE
@ PI_INVALID_DEVICE
Definition: pi.h:94