DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::ext::oneapi::detail Namespace Reference

Namespaces

 bf16
 

Classes

struct  is_bf16_storage_type
 
struct  is_bf16_storage_type< uint16_t >
 
struct  is_bf16_storage_type< uint32_t >
 
struct  is_bf16_storage_type< vec< uint16_t, N > >
 
struct  is_bf16_storage_type< vec< uint32_t, N > >
 
struct  joint_matrix_hip
 
struct  to_hip_type
 
struct  to_hip_type< bfloat16 >
 
struct  to_hip_type< half >
 
struct  to_hip_type< int8_t >
 
struct  jm_type_interpretation_helper_trait
 
struct  jm_type_interpretation_helper_trait< sycl::ext::oneapi::experimental::matrix::precision::tf32 >
 
class  wi_element
 
class  wi_element< sycl::ext::oneapi::bfloat16, NumRows, NumCols, Use, Layout, Group >
 
class  wi_data
 
struct  joint_matrix_cuda
 
struct  owner_less_base
 
class  weak_object_base
 
class  filter_selector_impl
 

Typedefs

using Bfloat16StorageT = uint16_t
 
using bfloat16x4 = __attribute__((__vector_size__(4 *sizeof(__bf16)))) __fp16
 
using float16x4 = __attribute__((__vector_size__(4 *sizeof(__fp16)))) __fp16
 
using floatx4 = __attribute__((__vector_size__(4 *sizeof(float)))) float
 
using floatx16 = __attribute__((__vector_size__(16 *sizeof(float)))) float
 
using int32x4 = __attribute__((__vector_size__(4 *sizeof(int32_t)))) int
 
using int32x16 = __attribute__((__vector_size__(16 *sizeof(int32_t)))) int
 
using doublex4 = __attribute__((__vector_size__(4 *sizeof(double)))) double
 
using filter = sycl::detail::ods_target
 

Functions

Bfloat16StorageT bfloat16ToBits (const bfloat16 &Value)
 
bfloat16 bitsToBfloat16 (const Bfloat16StorageT Value)
 
template<sycl::ext::oneapi::experimental::matrix::layout Layout, typename S , typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated, typename Group >
void load_accumulator_layoutT (joint_matrix_hip< S, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &res, multi_ptr< T, Space, IsDecorated > src, size_t stride, Group &sg)
 
template<typename Group , typename S , typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated, typename = std::enable_if_t<std::is_same_v<S, std::remove_const_t<T>>>>
void load_accumulator_hip (joint_matrix_hip< S, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &res, multi_ptr< T, Space, IsDecorated > src, size_t stride, sycl::ext::oneapi::experimental::matrix::layout layout, Group &sg)
 
template<typename Group , typename S , typename T , size_t M, size_t N, sycl::ext::oneapi::experimental::matrix::use Use, sycl::ext::oneapi::experimental::matrix::layout Layout, access::address_space Space, access::decorated IsDecorated, typename = typename std::enable_if_t< (Layout == sycl::ext::oneapi::experimental::matrix::layout::row_major || Layout == sycl::ext::oneapi::experimental::matrix::layout::col_major) && std::is_same_v<S, std::remove_const_t<T>>>>
void load_multiplicand_hip (joint_matrix_hip< S, Use, M, N, Layout > &res, multi_ptr< T, Space, IsDecorated > src, size_t stride, Group &sg)
 
template<typename Group , sycl::ext::oneapi::experimental::matrix::layout Layout, typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated>
void store_layoutT (const joint_matrix_hip< T, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &src, multi_ptr< T, Space, IsDecorated > dst, size_t stride, Group &sg)
 
template<typename Group , typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated>
void joint_matrix_store_hip (const joint_matrix_hip< T, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &src, multi_ptr< T, Space, IsDecorated > dst, size_t stride, sycl::ext::oneapi::experimental::matrix::layout layout, Group &sg)
 
template<typename Tm , typename Tc , std::size_t M, std::size_t K, std::size_t N, sycl::ext::oneapi::experimental::matrix::layout LayoutA, sycl::ext::oneapi::experimental::matrix::layout LayoutB>
void joint_matrix_mad_hip (joint_matrix_hip< Tc, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &D, const joint_matrix_hip< Tm, sycl::ext::oneapi::experimental::matrix::use::a, M, K, LayoutA > &A, const joint_matrix_hip< Tm, sycl::ext::oneapi::experimental::matrix::use::b, K, N, LayoutB > &B, const joint_matrix_hip< Tc, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &C)
 
template<typename Group , typename T , sycl::ext::oneapi::experimental::matrix::use Use, size_t Rows, size_t Cols, sycl::ext::oneapi::experimental::matrix::layout Layout>
decltype(auto) __SYCL_ALWAYS_INLINE get_wi_data (Group sg, sycl::ext::oneapi::experimental::matrix::joint_matrix< Group, T, Use, Rows, Cols, Layout > &jm)
 
template<int Dims>
static range< Dims > createDummyRange ()
 
template<typename SYCLObjT >
decltype(weak_object_base< SYCLObjT >::MObjWeakPtr) getSyclWeakObjImpl (const weak_object_base< SYCLObjT > &WeakObj)
 
std::vector< std::string > tokenize (const std::string &Filter, const std::string &Delim)
 
filter create_filter (const std::string &Input)
 

Variables

constexpr int WAVEFRONT_SIZE = 64
 

Typedef Documentation

◆ Bfloat16StorageT

Definition at line 29 of file bfloat16.hpp.

◆ bfloat16x4

using sycl::_V1::ext::oneapi::detail::bfloat16x4 = typedef __attribute__((__vector_size__(4 * sizeof(__bf16)))) __fp16

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

◆ doublex4

using sycl::_V1::ext::oneapi::detail::doublex4 = typedef __attribute__((__vector_size__(4 * sizeof(double)))) double

Definition at line 37 of file matrix-hip.hpp.

◆ filter

using sycl::_V1::ext::oneapi::detail::filter = typedef sycl::detail::ods_target

Definition at line 26 of file filter_selector_impl.hpp.

◆ float16x4

using sycl::_V1::ext::oneapi::detail::float16x4 = typedef __attribute__((__vector_size__(4 * sizeof(__fp16)))) __fp16

Definition at line 32 of file matrix-hip.hpp.

◆ floatx16

using sycl::_V1::ext::oneapi::detail::floatx16 = typedef __attribute__((__vector_size__(16 * sizeof(float)))) float

Definition at line 34 of file matrix-hip.hpp.

◆ floatx4

using sycl::_V1::ext::oneapi::detail::floatx4 = typedef __attribute__((__vector_size__(4 * sizeof(float)))) float

Definition at line 33 of file matrix-hip.hpp.

◆ int32x16

using sycl::_V1::ext::oneapi::detail::int32x16 = typedef __attribute__((__vector_size__(16 * sizeof(int32_t)))) int

Definition at line 36 of file matrix-hip.hpp.

◆ int32x4

using sycl::_V1::ext::oneapi::detail::int32x4 = typedef __attribute__((__vector_size__(4 * sizeof(int32_t)))) int

Definition at line 35 of file matrix-hip.hpp.

Function Documentation

◆ bfloat16ToBits()

◆ bitsToBfloat16()

◆ create_filter()

filter sycl::_V1::ext::oneapi::detail::create_filter ( const std::string &  Input)

◆ createDummyRange()

template<int Dims>
static range<Dims> sycl::_V1::ext::oneapi::detail::createDummyRange ( )
static

Definition at line 34 of file weak_object.hpp.

◆ get_wi_data()

template<typename Group , typename T , sycl::ext::oneapi::experimental::matrix::use Use, size_t Rows, size_t Cols, sycl::ext::oneapi::experimental::matrix::layout Layout>
decltype(auto) __SYCL_ALWAYS_INLINE sycl::_V1::ext::oneapi::detail::get_wi_data ( Group  sg,
sycl::ext::oneapi::experimental::matrix::joint_matrix< Group, T, Use, Rows, Cols, Layout > &  jm 
)
inline

◆ getSyclWeakObjImpl()

template<typename SYCLObjT >
decltype(weak_object_base<SYCLObjT>::MObjWeakPtr) sycl::_V1::ext::oneapi::detail::getSyclWeakObjImpl ( const weak_object_base< SYCLObjT > &  WeakObj)

◆ joint_matrix_mad_hip()

template<typename Tm , typename Tc , std::size_t M, std::size_t K, std::size_t N, sycl::ext::oneapi::experimental::matrix::layout LayoutA, sycl::ext::oneapi::experimental::matrix::layout LayoutB>
void sycl::_V1::ext::oneapi::detail::joint_matrix_mad_hip ( joint_matrix_hip< Tc, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &  D,
const joint_matrix_hip< Tm, sycl::ext::oneapi::experimental::matrix::use::a, M, K, LayoutA > &  A,
const joint_matrix_hip< Tm, sycl::ext::oneapi::experimental::matrix::use::b, K, N, LayoutB > &  B,
const joint_matrix_hip< Tc, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &  C 
)

◆ joint_matrix_store_hip()

template<typename Group , typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated>
void sycl::_V1::ext::oneapi::detail::joint_matrix_store_hip ( const joint_matrix_hip< T, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &  src,
multi_ptr< T, Space, IsDecorated >  dst,
size_t  stride,
sycl::ext::oneapi::experimental::matrix::layout  layout,
Group &  sg 
)

◆ load_accumulator_hip()

template<typename Group , typename S , typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated, typename = std::enable_if_t<std::is_same_v<S, std::remove_const_t<T>>>>
void sycl::_V1::ext::oneapi::detail::load_accumulator_hip ( joint_matrix_hip< S, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &  res,
multi_ptr< T, Space, IsDecorated >  src,
size_t  stride,
sycl::ext::oneapi::experimental::matrix::layout  layout,
Group &  sg 
)

◆ load_accumulator_layoutT()

template<sycl::ext::oneapi::experimental::matrix::layout Layout, typename S , typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated, typename Group >
void sycl::_V1::ext::oneapi::detail::load_accumulator_layoutT ( joint_matrix_hip< S, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &  res,
multi_ptr< T, Space, IsDecorated >  src,
size_t  stride,
Group &  sg 
)

Definition at line 108 of file matrix-hip.hpp.

Referenced by load_accumulator_hip().

◆ load_multiplicand_hip()

template<typename Group , typename S , typename T , size_t M, size_t N, sycl::ext::oneapi::experimental::matrix::use Use, sycl::ext::oneapi::experimental::matrix::layout Layout, access::address_space Space, access::decorated IsDecorated, typename = typename std::enable_if_t< (Layout == sycl::ext::oneapi::experimental::matrix::layout::row_major || Layout == sycl::ext::oneapi::experimental::matrix::layout::col_major) && std::is_same_v<S, std::remove_const_t<T>>>>
void sycl::_V1::ext::oneapi::detail::load_multiplicand_hip ( joint_matrix_hip< S, Use, M, N, Layout > &  res,
multi_ptr< T, Space, IsDecorated >  src,
size_t  stride,
Group &  sg 
)

◆ store_layoutT()

template<typename Group , sycl::ext::oneapi::experimental::matrix::layout Layout, typename T , size_t M, size_t N, access::address_space Space, access::decorated IsDecorated>
void sycl::_V1::ext::oneapi::detail::store_layoutT ( const joint_matrix_hip< T, sycl::ext::oneapi::experimental::matrix::use::accumulator, M, N, sycl::ext::oneapi::experimental::matrix::layout::dynamic > &  src,
multi_ptr< T, Space, IsDecorated >  dst,
size_t  stride,
Group &  sg 
)

Definition at line 242 of file matrix-hip.hpp.

Referenced by joint_matrix_store_hip().

◆ tokenize()

std::vector<std::string> sycl::_V1::ext::oneapi::detail::tokenize ( const std::string &  Filter,
const std::string &  Delim 
)

Variable Documentation

◆ WAVEFRONT_SIZE

constexpr int sycl::_V1::ext::oneapi::detail::WAVEFRONT_SIZE = 64
constexpr

Definition at line 22 of file matrix-hip.hpp.