DPC++ Runtime
Runtime libraries for oneAPI DPC++
matrix-unified.hpp File Reference
#include "matrix-intel.hpp"
#include <sycl/access/access.hpp>
#include <sycl/detail/defines_elementary.hpp>
#include <sycl/detail/pi.h>
#include <sycl/exception.hpp>
#include <sycl/ext/oneapi/matrix/matrix-unified-utils.hpp>
#include <sycl/ext/oneapi/matrix/query-types.hpp>
#include <sycl/marray.hpp>
#include <sycl/multi_ptr.hpp>
#include <cstring>
#include <stdint.h>
#include <tuple>
#include <type_traits>
Include dependency graph for matrix-unified.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix< Group, T, Use, Rows, Cols, Layout >
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::ext
 
 sycl::_V1::ext::oneapi
 
 sycl::_V1::ext::oneapi::experimental
 
 sycl::_V1::ext::oneapi::experimental::matrix
 

Functions

template<typename Group , typename T , use Use, size_t M, size_t N, layout Layout, typename F >
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_apply (Group sg, joint_matrix< Group, T, Use, M, N, Layout > &jm, F &&lambda)
 
template<typename Group , typename T , size_t NumRows, size_t NumCols, use Use, layout Layout, typename T2 >
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_fill (Group, joint_matrix< Group, T, Use, NumRows, NumCols, Layout > &res, const T2 &v)
 
template<typename Group , typename S , typename T , size_t NumRows, size_t NumCols, access::address_space Space, access::decorated IsDecorated, std::enable_if_t< std::is_same< S, std::remove_const_t< T >>::value, bool > = true>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_load (Group sg, joint_matrix< Group, S, use::accumulator, NumRows, NumCols, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &res, multi_ptr< T, Space, IsDecorated > src, size_t stride, sycl::ext::oneapi::experimental::matrix::layout Layout)
 
template<typename Group , typename S , typename T , use Use, size_t NumRows, size_t NumCols, matrix::layout Layout, access::address_space Space, access::decorated IsDecorated, std::enable_if_t< std::is_same< S, std::remove_const_t< T >>::value||(std::is_same< S, precision::tf32 >::value &&std::is_same< std::remove_const_t< T >, float >::value), bool > = true>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_load (Group sg, joint_matrix< Group, S, Use, NumRows, NumCols, Layout > &res, multi_ptr< T, Space, IsDecorated > src, size_t stride)
 
template<typename Group , typename S , typename T , size_t NumRows, size_t NumCols, typename PropertyListT , std::enable_if_t< std::is_same< S, std::remove_const_t< T >>::value, bool > = true>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_load (Group sg, joint_matrix< Group, S, use::accumulator, NumRows, NumCols, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &res, ext::oneapi::experimental::annotated_ptr< T, PropertyListT > src, size_t stride, sycl::ext::oneapi::experimental::matrix::layout Layout)
 
template<typename Group , typename S , typename T , use Use, size_t NumRows, size_t NumCols, matrix::layout Layout, typename PropertyListT , std::enable_if_t< std::is_same< S, std::remove_const_t< T >>::value||(std::is_same< S, precision::tf32 >::value &&std::is_same< std::remove_const_t< T >, float >::value), bool > = true>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_load (Group sg, joint_matrix< Group, S, Use, NumRows, NumCols, Layout > &res, ext::oneapi::experimental::annotated_ptr< T, PropertyListT > src, size_t stride)
 
template<typename Group , typename T , size_t NumRows, size_t NumCols, access::address_space Space, access::decorated IsDecorated>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_store (Group sg, const joint_matrix< Group, T, use::accumulator, NumRows, NumCols, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &src, multi_ptr< T, Space, IsDecorated > dst, size_t stride, sycl::ext::oneapi::experimental::matrix::layout Layout)
 
template<typename Group , typename T , size_t NumRows, size_t NumCols, typename PropertyListT >
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_store (Group sg, const joint_matrix< Group, T, use::accumulator, NumRows, NumCols, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &src, ext::oneapi::experimental::annotated_ptr< T, PropertyListT > dst, size_t stride, sycl::ext::oneapi::experimental::matrix::layout Layout)
 
template<typename Group , typename Ta , typename Tb , typename Tc , typename Td , std::size_t M, std::size_t K, std::size_t N, layout LayoutA, layout LayoutB>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_mad (Group, joint_matrix< Group, Td, use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &D, const joint_matrix< Group, Ta, use::a, M, K, LayoutA > &A, const joint_matrix< Group, Tb, use::b, K, N, LayoutB > &B, const joint_matrix< Group, Tc, use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &C)
 
template<typename Group , typename T1 , typename T2 , size_t Rows, size_t Cols, use Use1, use Use2, layout Layout1, layout Layout2>
void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_copy (Group sg, joint_matrix< Group, T1, Use1, Rows, Cols, Layout1 > &src, joint_matrix< Group, T2, Use2, Rows, Cols, Layout2 > &dst)
 
__SYCL_ALWAYS_INLINE float sycl::_V1::ext::oneapi::experimental::matrix::round_to_tf32 (const float &a)
 
template<size_t NumRows, size_t NumCols, typename Group , typename T , typename Properties = ext::oneapi::experimental::empty_properties_t>
__SYCL_ALWAYS_INLINE void sycl::_V1::ext::oneapi::experimental::matrix::joint_matrix_prefetch (Group sg, T *Ptr, size_t stride, sycl::ext::oneapi::experimental::matrix::layout Layout, Properties properties={})