Public Types | Static Public Member Functions | Static Public Attributes | List of all members
Eigen::internal::InnerReducer< Self, Op, const Eigen::SyclDevice > Struct Template Reference

#include <TensorReductionSycl.h>

Public Types

typedef Self::CoeffReturnType CoeffReturnType
 

Static Public Member Functions

static bool run (const Self &self, Op &reducer, const Eigen::SyclDevice &dev, CoeffReturnType *output, typename Self::Index, typename Self::Index num_coeffs_to_preserve)
 

Static Public Attributes

static const bool HasOptimizedImplementation = false
 

Detailed Description

template<typename Self, typename Op>
struct Eigen::internal::InnerReducer< Self, Op, const Eigen::SyclDevice >

Definition at line 182 of file TensorReductionSycl.h.

Member Typedef Documentation

template<typename Self , typename Op >
typedef Self::CoeffReturnType Eigen::internal::InnerReducer< Self, Op, const Eigen::SyclDevice >::CoeffReturnType

Definition at line 184 of file TensorReductionSycl.h.

Member Function Documentation

template<typename Self , typename Op >
static bool Eigen::internal::InnerReducer< Self, Op, const Eigen::SyclDevice >::run ( const Self &  self,
Op &  reducer,
const Eigen::SyclDevice &  dev,
CoeffReturnType output,
typename Self::Index  ,
typename Self::Index  num_coeffs_to_preserve 
)
inlinestatic

this is the child of reduction

creating the shared memory for calculating reduction. This one is used to collect all the reduced value of shared memory as we dont have global barrier on GPU. Once it is saved we can recursively apply reduction on it in order to reduce the whole.

reduction cannot be captured automatically through our device conversion recursion. The reason is that reduction has two behaviour the first behaviour is when it is used as a root to lauch the sub-kernel. The second one is when it is treated as a leafnode to pass the calculated result to its parent kernel. While the latter is automatically detected through our device expression generator. The former is created here.

This is the evaluator for device_self_expr. This is exactly similar to the self which has been passed to run function. The difference is the device_evaluator is detectable and recognisable on the device.

const cast added as a naive solution to solve the qualifier drop error

Definition at line 187 of file TensorReductionSycl.h.

Member Data Documentation

template<typename Self , typename Op >
const bool Eigen::internal::InnerReducer< Self, Op, const Eigen::SyclDevice >::HasOptimizedImplementation = false
static

Definition at line 185 of file TensorReductionSycl.h.


The documentation for this struct was generated from the following file:


hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:10:37