MatrixProductCommon.h File Reference

Go to the source code of this file.

Namespaces

 Eigen
 : InteropHeaders
 
 Eigen::internal
 

Macros

#define EIGEN_POWER_PREFETCH(p)
 
#define MICRO_COMPLEX_LOAD_ONE(iter)
 
#define MICRO_COMPLEX_PREFETCH_ONE(iter)
 
#define MICRO_COMPLEX_SRC_PTR_ONE(iter)
 
#define MICRO_COMPLEX_UNROLL_ITER(func, N)
 
#define MICRO_COMPLEX_UPDATE
 
#define MICRO_LOAD1(lhs_ptr, iter)
 
#define MICRO_LOAD_ONE(iter)
 
#define MICRO_NORMAL(iter)
 
#define MICRO_NORMAL_COLS(iter, a, b)
 
#define MICRO_PREFETCH1(lhs_ptr, iter)
 
#define MICRO_PREFETCH_ONE(iter)
 
#define MICRO_SRC_PTR1(lhs_ptr, advRows, iter)
 
#define MICRO_SRC_PTR_ONE(iter)
 
#define MICRO_UNROLL_ITER(func, N)
 
#define MICRO_UNROLL_ITER1(func, N)
 
#define MICRO_UPDATE
 
#define MICRO_UPDATE_MASK
 

Functions

template<typename Packet , typename Packetc , int N, bool full>
EIGEN_ALWAYS_INLINE void Eigen::internal::bcouple (PacketBlock< Packet, N > &taccReal, PacketBlock< Packet, N > &taccImag, PacketBlock< Packetc, N *2 > &tRes, PacketBlock< Packetc, N > &acc1, PacketBlock< Packetc, N > &acc2)
 
template<typename DataMapper , typename Packet , const Index accCols, int StorageOrder, bool Complex, int N, bool full>
EIGEN_ALWAYS_INLINE void Eigen::internal::bload (PacketBlock< Packet, N *(Complex?2:1)> &acc, const DataMapper &res, Index row, Index col)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE Packet Eigen::internal::bmask (const Index remaining_rows)
 
template<typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscale (PacketBlock< Packet, N > &acc, PacketBlock< Packet, N > &accZ, const Packet &pAlpha)
 
template<typename Packet , int N, bool mask>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscale (PacketBlock< Packet, N > &acc, PacketBlock< Packet, N > &accZ, const Packet &pAlpha, const Packet &pMask)
 
template<typename Packet , int N, bool mask>
EIGEN_ALWAYS_INLINE void Eigen::internal::bscalec (PacketBlock< Packet, N > &aReal, PacketBlock< Packet, N > &aImag, const Packet &bReal, const Packet &bImag, PacketBlock< Packet, N > &cReal, PacketBlock< Packet, N > &cImag, const Packet &pMask)
 
template<typename DataMapper , typename Packet , int N>
EIGEN_ALWAYS_INLINE void Eigen::internal::bstore (PacketBlock< Packet, N > &acc, const DataMapper &res, Index row)
 
template<typename DataMapper >
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayBF16toF32 (float *result, Index cols, Index rows, const DataMapper &src)
 
template<bool non_unit_stride>
EIGEN_ALWAYS_INLINE void Eigen::internal::convertArrayPointerBF16toF32 (float *result, Index cols, Index rows, bfloat16 *src, Index resInc)
 
template<typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_complex_extra_cols (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index depth, Index strideA, Index offsetA, Index strideB, Index offsetB, Index col, Index rows, Index cols, Index remaining_rows, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename Packetc , typename DataMapper , const Index accRows, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_complex_extra_row (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index row, Index rows, Index remaining_rows, const Packet &pAlphaReal, const Packet &pAlphaImag, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename DataMapper , const Index accCols>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_extra_cols (const DataMapper &res, const Scalar *blockA, const Scalar *blockB, Index depth, Index strideA, Index offsetA, Index strideB, Index offsetB, Index col, Index rows, Index cols, Index remaining_rows, const Packet &pAlpha, const Packet &pMask)
 
template<typename Scalar , typename Packet , typename DataMapper , const Index accRows, const Index accCols>
EIGEN_ALWAYS_INLINE void Eigen::internal::gemm_extra_row (const DataMapper &res, const Scalar *lhs_base, const Scalar *rhs_base, Index depth, Index strideA, Index offsetA, Index strideB, Index row, Index rows, Index remaining_rows, const Packet &pAlpha, const Packet &pMask)
 
template<typename RhsMapper , bool linear>
EIGEN_ALWAYS_INLINE Packet8bf Eigen::internal::loadColData (RhsMapper &rhs, Index j)
 
template<Index num_acc, bool extraRows, Index size = 4>
EIGEN_ALWAYS_INLINE void Eigen::internal::outputVecColResults (Packet4f(&acc)[num_acc][size], float *result, Packet4f pAlpha, Index extra_rows)
 
template<Index num_acc, Index size = 4>
EIGEN_ALWAYS_INLINE void Eigen::internal::outputVecResults (Packet4f(&acc)[num_acc][size], float *result, Packet4f pAlpha)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE Packet Eigen::internal::ploadLhs (const __UNPACK_TYPE__(Packet) *lhs)
 
template<const Index size, bool non_unit_stride, Index delta>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeBF16fromResult (bfloat16 *dst, Packet8bf data, Index resInc, Index extra=0)
 
template<bool rhsExtraCols, bool lhsExtraRows>
EIGEN_ALWAYS_INLINE void Eigen::internal::storeResults (Packet4f(&acc)[4], Index rows, const Packet4f pAlpha, float *result, Index extra_cols, Index extra_rows)
 

Macro Definition Documentation

◆ EIGEN_POWER_PREFETCH

#define EIGEN_POWER_PREFETCH (   p)

Definition at line 5 of file MatrixProductCommon.h.

◆ MICRO_COMPLEX_LOAD_ONE

#define MICRO_COMPLEX_LOAD_ONE (   iter)

Definition at line 188 of file MatrixProductCommon.h.

◆ MICRO_COMPLEX_PREFETCH_ONE

#define MICRO_COMPLEX_PREFETCH_ONE (   iter)

Definition at line 214 of file MatrixProductCommon.h.

◆ MICRO_COMPLEX_SRC_PTR_ONE

#define MICRO_COMPLEX_SRC_PTR_ONE (   iter)

Definition at line 205 of file MatrixProductCommon.h.

◆ MICRO_COMPLEX_UNROLL_ITER

#define MICRO_COMPLEX_UNROLL_ITER (   func,
 
)

Definition at line 174 of file MatrixProductCommon.h.

◆ MICRO_COMPLEX_UPDATE

#define MICRO_COMPLEX_UPDATE

Definition at line 229 of file MatrixProductCommon.h.

◆ MICRO_LOAD1

#define MICRO_LOAD1 (   lhs_ptr,
  iter 
)

Definition at line 178 of file MatrixProductCommon.h.

◆ MICRO_LOAD_ONE

#define MICRO_LOAD_ONE (   iter)

Definition at line 186 of file MatrixProductCommon.h.

◆ MICRO_NORMAL

#define MICRO_NORMAL (   iter)

Definition at line 137 of file MatrixProductCommon.h.

◆ MICRO_NORMAL_COLS

#define MICRO_NORMAL_COLS (   iter,
  a,
  b 
)

Definition at line 176 of file MatrixProductCommon.h.

◆ MICRO_PREFETCH1

#define MICRO_PREFETCH1 (   lhs_ptr,
  iter 
)

Definition at line 207 of file MatrixProductCommon.h.

◆ MICRO_PREFETCH_ONE

#define MICRO_PREFETCH_ONE (   iter)

Definition at line 212 of file MatrixProductCommon.h.

◆ MICRO_SRC_PTR1

#define MICRO_SRC_PTR1 (   lhs_ptr,
  advRows,
  iter 
)

Definition at line 196 of file MatrixProductCommon.h.

◆ MICRO_SRC_PTR_ONE

#define MICRO_SRC_PTR_ONE (   iter)

Definition at line 203 of file MatrixProductCommon.h.

◆ MICRO_UNROLL_ITER

#define MICRO_UNROLL_ITER (   func,
 
)

Definition at line 171 of file MatrixProductCommon.h.

◆ MICRO_UNROLL_ITER1

#define MICRO_UNROLL_ITER1 (   func,
 
)

Definition at line 140 of file MatrixProductCommon.h.

◆ MICRO_UPDATE

#define MICRO_UPDATE

Definition at line 222 of file MatrixProductCommon.h.

◆ MICRO_UPDATE_MASK

#define MICRO_UPDATE_MASK

Definition at line 219 of file MatrixProductCommon.h.