Legion Runtime
Public Types | Public Member Functions | Static Public Attributes | List of all members
Legion::ReductionAccessor< REDOP, EXCLUSIVE, N, COORD_T, A, CHECK_BOUNDS > Class Template Reference

#include <legion.h>

Public Types

typedef REDOP::RHS value_type
 
typedef REDOP::RHS & reference
 
typedef const REDOP::RHS & const_reference
 

Public Member Functions

 ReductionAccessor (const PhysicalRegion &region, FieldID fid, ReductionOpID redop, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
 ReductionAccessor (const PhysicalRegion &region, FieldID fid, ReductionOpID redop, const Rect< N, COORD_T > bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<int M>
 ReductionAccessor (const PhysicalRegion &region, FieldID fid, ReductionOpID redop, const AffineTransform< M, N, COORD_T > transform, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<int M>
 ReductionAccessor (const PhysicalRegion &region, FieldID fid, ReductionOpID redop, const AffineTransform< M, N, COORD_T > transform, const Rect< N, COORD_T > bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<typename InputIterator >
 ReductionAccessor (InputIterator start_region, InputIterator stop_region, FieldID fid, ReductionOpID redop, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<typename InputIterator >
 ReductionAccessor (InputIterator start_region, InputIterator stop_region, FieldID fid, ReductionOpID redop, const Rect< N, COORD_T > bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<typename InputIterator , int M>
 ReductionAccessor (InputIterator start_region, InputIterator stop_region, FieldID fid, ReductionOpID redop, const AffineTransform< M, N, COORD_T > transform, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<typename InputIterator , int M>
 ReductionAccessor (InputIterator start_region, InputIterator stop_region, FieldID fid, ReductionOpID redop, const AffineTransform< M, N, COORD_T > transform, const Rect< N, COORD_T > bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
 ReductionAccessor (const UntypedDeferredValue &value, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
 ReductionAccessor (const UntypedDeferredValue &value, const Rect< N, COORD_T > &bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
 ReductionAccessor (const UntypedDeferredBuffer< COORD_T > &buffer, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
 ReductionAccessor (const UntypedDeferredBuffer< COORD_T > &buffer, const Rect< N, COORD_T > &bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<int M>
 ReductionAccessor (const UntypedDeferredBuffer< COORD_T > &buffer, const AffineTransform< M, N, COORD_T > &transform, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 
template<int M>
 ReductionAccessor (const UntypedDeferredBuffer< COORD_T > &buffer, const AffineTransform< M, N, COORD_T > &transform, const Rect< N, COORD_T > &bounds, bool silence_warnings=false, const char *warning_string=NULL, size_t subfield_offset=0, size_t actual_field_size=sizeof(typename REDOP::RHS), bool check_field_size=false)
 

Static Public Attributes

static const int dim = N
 

Detailed Description

template<typename REDOP, bool EXCLUSIVE, int N, typename COORD_T = coord_t, typename A = Realm::GenericAccessor<typename REDOP::RHS,N,COORD_T>, bool CHECK_BOUNDS = false>
class Legion::ReductionAccessor< REDOP, EXCLUSIVE, N, COORD_T, A, CHECK_BOUNDS >

A field accessor is a class used to perform reductions to a given field inside a PhysicalRegion object for a specific field. Reductions can be performed directly or array indexing can be used along with the <<= operator to perform the reduction. We also provide the same variants of the 'ptr' method as normal accessors to obtain a pointer to the underlying allocation. This seems to be useful when we need to do reductions directly to a buffer as is often necessary when invoking external libraries like BLAS. This method currently only works with the Realm::AffineAccessor layout


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