A cost model used to limit the number of threads used for evaluating tensor expression. More...
Public Types | |
enum | { IsAligned , PacketAccess } |
typedef Derived::Scalar | CoeffReturnType |
typedef Derived::Dimensions | Dimensions |
typedef Storage::Type | EvaluatorPointerType |
typedef Derived::Index | Index |
typedef PacketType< CoeffReturnType, Device >::type | PacketReturnType |
typedef Derived::Scalar | Scalar |
typedef std::remove_const_t< Scalar > | ScalarNoConst |
typedef StorageMemory< Scalar, Device > | Storage |
typedef internal::TensorMaterializedBlock< ScalarNoConst, NumCoords, Layout, Index > | TensorBlock |
typedef internal::TensorBlockDescriptor< NumCoords, Index > | TensorBlockDesc |
typedef internal::TensorBlockScratchAllocator< Device > | TensorBlockScratch |
typedef internal::traits< Derived >::template MakePointer< Scalar >::Type | TensorPointerType |
typedef Derived | XprType |
Public Member Functions | |
TensorBlock | block (TensorBlockDesc &desc, TensorBlockScratch &scratch, bool=false) const |
void | cleanup () |
CoeffReturnType | coeff (const array< DenseIndex, NumCoords > &coords) const |
CoeffReturnType | coeff (Index index) const |
CoeffReturnType & | coeffRef (const array< DenseIndex, NumCoords > &coords) const |
CoeffReturnType & | coeffRef (Index index) const |
TensorOpCost | costPerCoeff (bool vectorized) const |
EvaluatorPointerType | data () const |
const Dimensions & | dimensions () const |
bool | evalSubExprsIfNeeded (EvaluatorPointerType dest) |
internal::TensorBlockResourceRequirements | getResourceRequirements () const |
template<int LoadMode> | |
PacketReturnType | packet (Index index) const |
template<typename PacketReturnTypeT > | |
std::enable_if_t< internal::unpacket_traits< PacketReturnTypeT >::masked_load_available, PacketReturnTypeT > | partialPacket (Index index, typename internal::unpacket_traits< PacketReturnTypeT >::mask_t umask) const |
TensorEvaluator (const Derived &m, const Device &device) | |
template<typename TensorBlock > | |
void | writeBlock (const TensorBlockDesc &desc, const TensorBlock &block) |
template<int StoreMode> | |
void | writePacket (Index index, const PacketReturnType &x) const |
Static Public Attributes | |
static constexpr int | Layout |
static constexpr int | NumCoords |
static constexpr int | PacketSize |
Protected Attributes | |
EvaluatorPointerType | m_data |
const Device EIGEN_DEVICE_REF | m_device |
Dimensions | m_dims |
A cost model used to limit the number of threads used for evaluating tensor expression.
The tensor evaluator classes.
These classes are responsible for the evaluation of the tensor expression.
TODO: add support for more types of expressions, in particular expressions leading to lvalues (slicing, reshaping, etc...)
Definition at line 30 of file TensorEvaluator.h.
typedef Derived::Scalar Eigen::TensorEvaluator< Derived, Device >::CoeffReturnType |
Definition at line 34 of file TensorEvaluator.h.
typedef Derived::Dimensions Eigen::TensorEvaluator< Derived, Device >::Dimensions |
Definition at line 36 of file TensorEvaluator.h.
typedef Storage::Type Eigen::TensorEvaluator< Derived, Device >::EvaluatorPointerType |
Definition at line 41 of file TensorEvaluator.h.
typedef Derived::Index Eigen::TensorEvaluator< Derived, Device >::Index |
Definition at line 32 of file TensorEvaluator.h.
typedef PacketType<CoeffReturnType, Device>::type Eigen::TensorEvaluator< Derived, Device >::PacketReturnType |
Definition at line 35 of file TensorEvaluator.h.
typedef Derived::Scalar Eigen::TensorEvaluator< Derived, Device >::Scalar |
Definition at line 33 of file TensorEvaluator.h.
typedef std::remove_const_t<Scalar> Eigen::TensorEvaluator< Derived, Device >::ScalarNoConst |
Definition at line 57 of file TensorEvaluator.h.
typedef StorageMemory<Scalar, Device> Eigen::TensorEvaluator< Derived, Device >::Storage |
Definition at line 40 of file TensorEvaluator.h.
typedef internal::TensorMaterializedBlock<ScalarNoConst, NumCoords, Layout, Index> Eigen::TensorEvaluator< Derived, Device >::TensorBlock |
Definition at line 65 of file TensorEvaluator.h.
typedef internal::TensorBlockDescriptor<NumCoords, Index> Eigen::TensorEvaluator< Derived, Device >::TensorBlockDesc |
Definition at line 60 of file TensorEvaluator.h.
typedef internal::TensorBlockScratchAllocator<Device> Eigen::TensorEvaluator< Derived, Device >::TensorBlockScratch |
Definition at line 61 of file TensorEvaluator.h.
typedef internal::traits<Derived>::template MakePointer<Scalar>::Type Eigen::TensorEvaluator< Derived, Device >::TensorPointerType |
Definition at line 39 of file TensorEvaluator.h.
typedef Derived Eigen::TensorEvaluator< Derived, Device >::XprType |
Definition at line 37 of file TensorEvaluator.h.
anonymous enum |
|
inline |
Definition at line 69 of file TensorEvaluator.h.
|
inline |
Definition at line 161 of file TensorEvaluator.h.
|
inline |
Definition at line 95 of file TensorEvaluator.h.
|
inline |
Definition at line 131 of file TensorEvaluator.h.
|
inline |
Definition at line 97 of file TensorEvaluator.h.
|
inline |
Definition at line 141 of file TensorEvaluator.h.
|
inline |
Definition at line 102 of file TensorEvaluator.h.
|
inline |
Definition at line 150 of file TensorEvaluator.h.
|
inline |
Definition at line 184 of file TensorEvaluator.h.
|
inline |
Definition at line 76 of file TensorEvaluator.h.
|
inline |
|
inline |
Definition at line 156 of file TensorEvaluator.h.
|
inline |
Definition at line 108 of file TensorEvaluator.h.
|
inline |
Definition at line 120 of file TensorEvaluator.h.
|
inline |
Definition at line 168 of file TensorEvaluator.h.
|
inline |
Definition at line 126 of file TensorEvaluator.h.
|
staticconstexpr |
Definition at line 46 of file TensorEvaluator.h.
|
protected |
Definition at line 187 of file TensorEvaluator.h.
|
protected |
Definition at line 189 of file TensorEvaluator.h.
|
protected |
Definition at line 188 of file TensorEvaluator.h.
|
staticconstexpr |
Definition at line 44 of file TensorEvaluator.h.
|
staticconstexpr |
Definition at line 38 of file TensorEvaluator.h.