Classes | Namespaces | Macros | Enumerations | Functions | Variables
products/GeneralBlockPanelKernel.h File Reference

Go to the source code of this file.

Classes

struct  Eigen::internal::CacheSizes
 
struct  Eigen::internal::DoublePacket< Packet >
 
struct  Eigen::internal::gebp_kernel< LhsScalar, RhsScalar, Index, DataMapper, mr, nr, ConjugateLhs, ConjugateRhs >
 
class  Eigen::internal::gebp_traits< _LhsScalar, _RhsScalar, _ConjLhs, _ConjRhs, Arch, _PacketSize >
 
class  Eigen::internal::gebp_traits< _LhsScalar, _RhsScalar, _ConjLhs, _ConjRhs, Arch, _PacketSize >
 
class  Eigen::internal::gebp_traits< RealScalar, std::complex< RealScalar >, false, _ConjRhs, Arch, _PacketSize >
 
class  Eigen::internal::gebp_traits< std::complex< RealScalar >, RealScalar, _ConjLhs, false, Arch, _PacketSize >
 
class  Eigen::internal::gebp_traits< std::complex< RealScalar >, std::complex< RealScalar >, _ConjLhs, _ConjRhs, Arch, _PacketSize >
 
struct  Eigen::internal::gemm_pack_lhs< Scalar, Index, DataMapper, Pack1, Pack2, Packet, ColMajor, Conjugate, PanelMode >
 
struct  Eigen::internal::gemm_pack_lhs< Scalar, Index, DataMapper, Pack1, Pack2, Packet, RowMajor, Conjugate, PanelMode >
 
struct  Eigen::internal::gemm_pack_rhs< Scalar, Index, DataMapper, nr, ColMajor, Conjugate, PanelMode >
 
struct  Eigen::internal::gemm_pack_rhs< Scalar, Index, DataMapper, nr, RowMajor, Conjugate, PanelMode >
 
struct  Eigen::internal::last_row_process_16_packets< LhsScalar, RhsScalar, Index, DataMapper, mr, nr, ConjugateLhs, ConjugateRhs, SwappedLhsProgress >
 
struct  Eigen::internal::last_row_process_16_packets< LhsScalar, RhsScalar, Index, DataMapper, mr, nr, ConjugateLhs, ConjugateRhs, 16 >
 
struct  Eigen::internal::lhs_process_fraction_of_packet< nr, LhsProgress, RhsProgress, LhsScalar, RhsScalar, ResScalar, AccPacket, LhsPacket, RhsPacket, ResPacket, GEBPTraits, LinearMapper, DataMapper >
 
struct  Eigen::internal::lhs_process_one_packet< nr, LhsProgress, RhsProgress, LhsScalar, RhsScalar, ResScalar, AccPacket, LhsPacket, RhsPacket, ResPacket, GEBPTraits, LinearMapper, DataMapper >
 
struct  Eigen::internal::packet_conditional< N, T1, T2, T3 >
 
struct  Eigen::internal::packet_conditional< GEBPPacketFull, T1, T2, T3 >
 
struct  Eigen::internal::packet_conditional< GEBPPacketHalf, T1, T2, T3 >
 
struct  Eigen::internal::QuadPacket< Packet >
 
struct  Eigen::internal::RhsPanelHelper< RhsPacket, RhsPacketx4, registers_taken >
 
struct  Eigen::internal::unpacket_traits< DoublePacket< Packet > >
 

Namespaces

 Eigen
 Namespace containing all symbols from the Eigen library.
 
 Eigen::internal
 

Macros

#define EIGEN_GEBGP_ONESTEP(K)
 
#define EIGEN_GEBGP_ONESTEP(K)
 
#define EIGEN_GEBGP_ONESTEP(K)
 
#define EIGEN_GEBGP_ONESTEP(K)
 
#define EIGEN_GEBP_2PX4_SPILLING_WORKAROUND
 
#define EIGEN_GEBP_3PX4_REGISTER_ALLOC_WORKAROUND
 
#define EIGEN_GEBP_ONESTEP(K)
 
#define EIGEN_SET_DEFAULT_L1_CACHE_SIZE(val)   val
 
#define EIGEN_SET_DEFAULT_L2_CACHE_SIZE(val)   val
 
#define EIGEN_SET_DEFAULT_L3_CACHE_SIZE(val)   val
 
#define PACKET_DECL_COND(name, packet_size)
 
#define PACKET_DECL_COND_PREFIX(prefix, name, packet_size)
 
#define PACKET_DECL_COND_SCALAR(packet_size)
 
#define PACKET_DECL_COND_SCALAR_PREFIX(prefix, packet_size)
 

Enumerations

enum  Eigen::internal::GEBPPacketSizeType { Eigen::internal::GEBPPacketFull = 0, Eigen::internal::GEBPPacketHalf, Eigen::internal::GEBPPacketQuarter }
 

Functions

template<typename LhsScalar , typename RhsScalar , int KcFactor, typename Index >
void Eigen::internal::computeProductBlockingSizes (Index &k, Index &m, Index &n, Index num_threads=1)
 Computes the blocking parameters for a m x k times k x n matrix product. More...
 
template<typename LhsScalar , typename RhsScalar , typename Index >
void Eigen::internal::computeProductBlockingSizes (Index &k, Index &m, Index &n, Index num_threads=1)
 
template<typename LhsScalar , typename RhsScalar , int KcFactor, typename Index >
void Eigen::internal::evaluateProductBlockingSizesHeuristic (Index &k, Index &m, Index &n, Index num_threads=1)
 
std::ptrdiff_t Eigen::l1CacheSize ()
 
std::ptrdiff_t Eigen::l2CacheSize ()
 
std::ptrdiff_t Eigen::l3CacheSize ()
 
template<typename Scalar , typename RealPacket >
void Eigen::internal::loadQuadToDoublePacket (const Scalar *b, DoublePacket< RealPacket > &dest, typename enable_if< unpacket_traits< RealPacket >::size<=8 >::type *=0)
 
template<typename Scalar , typename RealPacket >
void Eigen::internal::loadQuadToDoublePacket (const Scalar *b, DoublePacket< RealPacket > &dest, typename enable_if< unpacket_traits< RealPacket >::size==16 >::type *=0)
 
void Eigen::internal::manage_caching_sizes (Action action, std::ptrdiff_t *l1, std::ptrdiff_t *l2, std::ptrdiff_t *l3)
 
std::ptrdiff_t Eigen::internal::manage_caching_sizes_helper (std::ptrdiff_t a, std::ptrdiff_t b)
 
template<typename Packet >
DoublePacket< PacketEigen::internal::padd (const DoublePacket< Packet > &a, const DoublePacket< Packet > &b)
 
template<typename Packet >
const DoublePacket< Packet > & Eigen::internal::predux_half_dowto4 (const DoublePacket< Packet > &a, typename enable_if< unpacket_traits< Packet >::size<=8 >::type *=0)
 
template<typename Packet >
DoublePacket< typename unpacket_traits< Packet >::half > Eigen::internal::predux_half_dowto4 (const DoublePacket< Packet > &a, typename enable_if< unpacket_traits< Packet >::size==16 >::type *=0)
 
void Eigen::setCpuCacheSizes (std::ptrdiff_t l1, std::ptrdiff_t l2, std::ptrdiff_t l3)
 
template<typename Index >
bool Eigen::internal::useSpecificBlockingSizes (Index &k, Index &m, Index &n)
 

Variables

const std::ptrdiff_t Eigen::internal::defaultL1CacheSize = EIGEN_SET_DEFAULT_L1_CACHE_SIZE(16*1024)
 
const std::ptrdiff_t Eigen::internal::defaultL2CacheSize = EIGEN_SET_DEFAULT_L2_CACHE_SIZE(512*1024)
 
const std::ptrdiff_t Eigen::internal::defaultL3CacheSize = EIGEN_SET_DEFAULT_L3_CACHE_SIZE(512*1024)
 

Macro Definition Documentation

◆ EIGEN_GEBGP_ONESTEP [1/4]

#define EIGEN_GEBGP_ONESTEP (   K)
Value:
do { \
EIGEN_ASM_COMMENT("begin step of gebp micro kernel 1/half/quarterX1"); \
EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
/* FIXME: why unaligned???? */ \
traits.loadLhsUnaligned(&blA[(0+1*K)*LhsProgress], A0); \
traits.loadRhs(&blB[(0+K)*RhsProgress], B_0); \
traits.madd(A0, B_0, C0, B_0, fix<0>); \
EIGEN_ASM_COMMENT("end step of gebp micro kernel 1/half/quarterX1"); \
} while(false);

◆ EIGEN_GEBGP_ONESTEP [2/4]

#define EIGEN_GEBGP_ONESTEP (   K)
Value:
do { \
EIGEN_ASM_COMMENT("begin step of gebp micro kernel 3pX1"); \
EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
traits.loadLhs(&blA[(0 + 3 * K) * LhsProgress], A0); \
traits.loadLhs(&blA[(1 + 3 * K) * LhsProgress], A1); \
traits.loadLhs(&blA[(2 + 3 * K) * LhsProgress], A2); \
traits.loadRhs(&blB[(0 + K) * RhsProgress], B_0); \
traits.madd(A0, B_0, C0, B_0, fix<0>); \
traits.madd(A1, B_0, C4, B_0, fix<0>); \
traits.madd(A2, B_0, C8, B_0, fix<0>); \
EIGEN_ASM_COMMENT("end step of gebp micro kernel 3pX1"); \
} while (false)

◆ EIGEN_GEBGP_ONESTEP [3/4]

#define EIGEN_GEBGP_ONESTEP (   K)
Value:
do { \
EIGEN_ASM_COMMENT("begin step of gebp micro kernel 2pX4"); \
traits.loadLhs(&blA[(0 + 2 * K) * LhsProgress], A0); \
traits.loadLhs(&blA[(1 + 2 * K) * LhsProgress], A1); \
traits.loadRhs(&blB[(0 + 4 * K) * RhsProgress], rhs_panel); \
traits.madd(A0, rhs_panel, C0, T0, fix<0>); \
traits.madd(A1, rhs_panel, C4, T0, fix<0>); \
traits.madd(A0, rhs_panel, C1, T0, fix<1>); \
traits.madd(A1, rhs_panel, C5, T0, fix<1>); \
traits.madd(A0, rhs_panel, C2, T0, fix<2>); \
traits.madd(A1, rhs_panel, C6, T0, fix<2>); \
traits.madd(A0, rhs_panel, C3, T0, fix<3>); \
traits.madd(A1, rhs_panel, C7, T0, fix<3>); \
EIGEN_ASM_COMMENT("end step of gebp micro kernel 2pX4"); \
} while (false)

◆ EIGEN_GEBGP_ONESTEP [4/4]

#define EIGEN_GEBGP_ONESTEP (   K)
Value:
do { \
EIGEN_ASM_COMMENT("begin step of gebp micro kernel 2pX1"); \
EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
traits.loadLhs(&blA[(0+2*K)*LhsProgress], A0); \
traits.loadLhs(&blA[(1+2*K)*LhsProgress], A1); \
traits.loadRhs(&blB[(0+K)*RhsProgress], B_0); \
traits.madd(A0, B_0, C0, B1, fix<0>); \
traits.madd(A1, B_0, C4, B_0, fix<0>); \
EIGEN_ASM_COMMENT("end step of gebp micro kernel 2pX1"); \
} while(false)

◆ EIGEN_GEBP_2PX4_SPILLING_WORKAROUND

#define EIGEN_GEBP_2PX4_SPILLING_WORKAROUND

◆ EIGEN_GEBP_3PX4_REGISTER_ALLOC_WORKAROUND

#define EIGEN_GEBP_3PX4_REGISTER_ALLOC_WORKAROUND

◆ EIGEN_GEBP_ONESTEP

#define EIGEN_GEBP_ONESTEP (   K)
Value:
do { \
EIGEN_ASM_COMMENT("begin step of gebp micro kernel 3pX4"); \
EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
internal::prefetch(blA + (3 * K + 16) * LhsProgress); \
internal::prefetch(blB + (4 * K + 16) * RhsProgress); \
} /* Bug 953 */ \
traits.loadLhs(&blA[(0 + 3 * K) * LhsProgress], A0); \
traits.loadLhs(&blA[(1 + 3 * K) * LhsProgress], A1); \
traits.loadLhs(&blA[(2 + 3 * K) * LhsProgress], A2); \
EIGEN_GEBP_3PX4_REGISTER_ALLOC_WORKAROUND \
traits.loadRhs(blB + (0+4*K) * Traits::RhsProgress, rhs_panel); \
traits.madd(A0, rhs_panel, C0, T0, fix<0>); \
traits.madd(A1, rhs_panel, C4, T0, fix<0>); \
traits.madd(A2, rhs_panel, C8, T0, fix<0>); \
traits.updateRhs(blB + (1+4*K) * Traits::RhsProgress, rhs_panel); \
traits.madd(A0, rhs_panel, C1, T0, fix<1>); \
traits.madd(A1, rhs_panel, C5, T0, fix<1>); \
traits.madd(A2, rhs_panel, C9, T0, fix<1>); \
traits.updateRhs(blB + (2+4*K) * Traits::RhsProgress, rhs_panel); \
traits.madd(A0, rhs_panel, C2, T0, fix<2>); \
traits.madd(A1, rhs_panel, C6, T0, fix<2>); \
traits.madd(A2, rhs_panel, C10, T0, fix<2>); \
traits.updateRhs(blB + (3+4*K) * Traits::RhsProgress, rhs_panel); \
traits.madd(A0, rhs_panel, C3, T0, fix<3>); \
traits.madd(A1, rhs_panel, C7, T0, fix<3>); \
traits.madd(A2, rhs_panel, C11, T0, fix<3>); \
EIGEN_ASM_COMMENT("end step of gebp micro kernel 3pX4"); \
} while (false)

◆ EIGEN_SET_DEFAULT_L1_CACHE_SIZE

#define EIGEN_SET_DEFAULT_L1_CACHE_SIZE (   val)    val

Definition at line 37 of file products/GeneralBlockPanelKernel.h.

◆ EIGEN_SET_DEFAULT_L2_CACHE_SIZE

#define EIGEN_SET_DEFAULT_L2_CACHE_SIZE (   val)    val

Definition at line 43 of file products/GeneralBlockPanelKernel.h.

◆ EIGEN_SET_DEFAULT_L3_CACHE_SIZE

#define EIGEN_SET_DEFAULT_L3_CACHE_SIZE (   val)    val

Definition at line 49 of file products/GeneralBlockPanelKernel.h.

◆ PACKET_DECL_COND

#define PACKET_DECL_COND (   name,
  packet_size 
)
Value:
typedef typename packet_conditional<packet_size, \
typename packet_traits<name ## Scalar>::half, \
typename unpacket_traits<typename packet_traits<name ## Scalar>::half>::half>::type \
name ## Packet

Definition at line 386 of file products/GeneralBlockPanelKernel.h.

◆ PACKET_DECL_COND_PREFIX

#define PACKET_DECL_COND_PREFIX (   prefix,
  name,
  packet_size 
)
Value:
typedef typename packet_conditional<packet_size, \
typename packet_traits<name ## Scalar>::half, \
typename unpacket_traits<typename packet_traits<name ## Scalar>::half>::half>::type \
prefix ## name ## Packet

Definition at line 379 of file products/GeneralBlockPanelKernel.h.

◆ PACKET_DECL_COND_SCALAR

#define PACKET_DECL_COND_SCALAR (   packet_size)
Value:
typedef typename packet_conditional<packet_size, \
typename unpacket_traits<typename packet_traits<Scalar>::half>::half>::type \
ScalarPacket

Definition at line 400 of file products/GeneralBlockPanelKernel.h.

◆ PACKET_DECL_COND_SCALAR_PREFIX

#define PACKET_DECL_COND_SCALAR_PREFIX (   prefix,
  packet_size 
)
Value:
typedef typename packet_conditional<packet_size, \
typename unpacket_traits<typename packet_traits<Scalar>::half>::half>::type \
prefix ## ScalarPacket

Definition at line 393 of file products/GeneralBlockPanelKernel.h.

name
Annotation for function names.
Definition: attr.h:51
gtsam.examples.DogLegOptimizerExample.type
type
Definition: DogLegOptimizerExample.py:111
Eigen::internal::packet_traits< Scalar >::type
Scalar type
Definition: GenericPacketMath.h:108
C2
Definition: test_operator_overloading.cpp:98
A0
static const double A0[]
Definition: expn.h:5
Eigen::internal::packet_traits< Scalar >::half
Scalar half
Definition: GenericPacketMath.h:109
C1
Definition: test_operator_overloading.cpp:97
A2
static const double A2[]
Definition: expn.h:7
EIGEN_ARCH_MIPS
#define EIGEN_ARCH_MIPS
Definition: Macros.h:314
Eigen::Triplet< double >
Eigen::internal::prefetch
EIGEN_DEVICE_FUNC void prefetch(const Scalar *addr)
Definition: GenericPacketMath.h:719
EIGEN_ARCH_ARM
#define EIGEN_ARCH_ARM
Definition: Macros.h:251
K
#define K
Definition: igam.h:8
A1
static const double A1[]
Definition: expn.h:6
EIGEN_ASM_COMMENT
#define EIGEN_ASM_COMMENT(X)
Definition: Macros.h:1082


gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:09:47