DPC++ Runtime
Runtime libraries for oneAPI DPC++
Systolic Array APIs.

APIs below are used to implement dot product accumulate systolic functions. More...

Collaboration diagram for Systolic Array APIs.:

Functions

template<int SystolicDepth, int RepeatCount, typename T , typename CT , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int N, int BN, int AN>
sycl::ext::intel::esimd::simd< T, N > sycl::_V1::ext::intel::esimd::xmx::dpas (sycl::ext::intel::esimd::simd< CT, N > C, sycl::ext::intel::esimd::simd< BT, BN > B, sycl::ext::intel::esimd::simd< AT, AN > A)
 
template<int SystolicDepth, int RepeatCount, typename T , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int BN, int AN>
auto sycl::_V1::ext::intel::esimd::xmx::dpas (sycl::ext::intel::esimd::simd< BT, BN > B, sycl::ext::intel::esimd::simd< AT, AN > A)
 DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = A x B;. More...
 
template<int SystolicDepth, int RepeatCount, typename T , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int N, int BN, int AN>
sycl::ext::intel::esimd::simd< T, N > sycl::_V1::ext::intel::esimd::xmx::dpasw (sycl::ext::intel::esimd::simd< T, N > C, sycl::ext::intel::esimd::simd< BT, BN > B, sycl::ext::intel::esimd::simd< AT, AN > A)
 DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = C + A x B;. More...
 
template<int SystolicDepth, int RepeatCount, typename T , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int BN, int AN>
auto sycl::_V1::ext::intel::esimd::xmx::dpasw (sycl::ext::intel::esimd::simd< BT, BN > B, sycl::ext::intel::esimd::simd< AT, AN > A)
 DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = A x B;. More...
 

Detailed Description

APIs below are used to implement dot product accumulate systolic functions.

DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = C + A x B;.

Parameters
Crepresents DPAS accumulator operand.
Brepresents the 2nd matrix multiplier. It must have the VNNI encoded layout.
Arepresents the 1st matrix multiplier.
Returns
the vector value of DPAS computation result.

Function Documentation

◆ dpas() [1/2]

template<int SystolicDepth, int RepeatCount, typename T , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int BN, int AN>
auto sycl::_V1::ext::intel::esimd::xmx::dpas ( sycl::ext::intel::esimd::simd< BT, BN >  B,
sycl::ext::intel::esimd::simd< AT, AN >  A 
)

DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = A x B;.

Parameters
Brepresents the 2nd matrix multiplier. It must have the VNNI encoded layout.
Arepresents the 1st matrix multiplier.
Returns
the vector value of DPAS computation result.

Definition at line 247 of file dpas.hpp.

References sycl::_V1::ext::intel::esimd::A, sycl::_V1::ext::intel::esimd::B, and sycl::_V1::ext::intel::esimd::xmx::detail::verify_parameters_and_deduce_exec_size().

◆ dpas() [2/2]

template<int SystolicDepth, int RepeatCount, typename T , typename CT , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int N, int BN, int AN>
sycl::ext::intel::esimd::simd<T, N> sycl::_V1::ext::intel::esimd::xmx::dpas ( sycl::ext::intel::esimd::simd< CT, N >  C,
sycl::ext::intel::esimd::simd< BT, BN >  B,
sycl::ext::intel::esimd::simd< AT, AN >  A 
)

◆ dpasw() [1/2]

template<int SystolicDepth, int RepeatCount, typename T , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int BN, int AN>
auto sycl::_V1::ext::intel::esimd::xmx::dpasw ( sycl::ext::intel::esimd::simd< BT, BN >  B,
sycl::ext::intel::esimd::simd< AT, AN >  A 
)

DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = A x B;.

Parameters
Brepresents the 2nd matrix multiplier. It must have the VNNI encoded layout.
Arepresents the 1st matrix multiplier.
Returns
the vector value of DPAS computation result.

Definition at line 319 of file dpas.hpp.

References sycl::_V1::ext::intel::esimd::A, sycl::_V1::ext::intel::esimd::B, and sycl::_V1::ext::intel::esimd::xmx::detail::verify_parameters_and_deduce_exec_size().

◆ dpasw() [2/2]

template<int SystolicDepth, int RepeatCount, typename T , typename BT , typename AT , dpas_argument_type BPrecision = detail::dpas_precision_from_type<BT>(), dpas_argument_type APrecision = detail::dpas_precision_from_type<AT>(), int N, int BN, int AN>
sycl::ext::intel::esimd::simd<T, N> sycl::_V1::ext::intel::esimd::xmx::dpasw ( sycl::ext::intel::esimd::simd< T, N >  C,
sycl::ext::intel::esimd::simd< BT, BN >  B,
sycl::ext::intel::esimd::simd< AT, AN >  A 
)

DPAS (Dot Product Accumulate Systolic) Computes the result of matrix operations: Result = C + A x B;.

Parameters
Crepresents DPAS accumulator operand.
Brepresents the 2nd matrix multiplier. It must have the VNNI encoded layout.
Arepresents the 1st matrix multiplier.
Returns
the vector value of DPAS computation result.

Definition at line 287 of file dpas.hpp.

References sycl::_V1::ext::intel::esimd::A, sycl::_V1::ext::intel::esimd::B, and sycl::_V1::ext::intel::esimd::xmx::detail::verify_parameters_and_deduce_exec_size().