![]() |
Realm
A distributed, event-based tasking library
|
#include <inst_layout.h>
Public Member Functions | |
| REALM_CUDA_HD | MultiAffineAccessor (void) |
| MultiAffineAccessor (RegionInstance inst, FieldID field_id, size_t subfield_offset=0) | |
| MultiAffineAccessor (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0) | |
| REALM_CUDA_HD | ~MultiAffineAccessor (void) |
| MultiAffineAccessor (const MultiAffineAccessor &)=default | |
| MultiAffineAccessor & | operator= (const MultiAffineAccessor &)=default |
| MultiAffineAccessor (MultiAffineAccessor &&) noexcept=default | |
| MultiAffineAccessor & | operator= (MultiAffineAccessor &&) noexcept=default |
| REALM_CUDA_HD void | reset () |
| void | reset (RegionInstance inst, FieldID field_id, size_t subfield_offset=0) |
| void | reset (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0) |
| REALM_CUDA_HD FT & | operator[] (const Point< N, T > &p) const |
| REALM_CUDA_HD FT * | ptr (const Point< N, T > &p) |
| REALM_CUDA_HD FT * | ptr (const Rect< N, T > &r, size_t strides[N]) |
| REALM_CUDA_HD FT | read (const Point< N, T > &p) |
| REALM_CUDA_HD void | write (const Point< N, T > &p, FT newval) |
| REALM_CUDA_HD FT & | operator[] (const Point< N, T > &p) |
| REALM_CUDA_HD FT * | ptr (const Point< N, T > &p) const |
| REALM_CUDA_HD FT * | ptr (const Rect< N, T > &r, size_t strides[N]) const |
| REALM_CUDA_HD FT | read (const Point< N, T > &p) const |
| REALM_CUDA_HD void | write (const Point< N, T > &p, FT newval) const |
Static Public Member Functions | |
| static bool | is_compatible (RegionInstance inst, FieldID field_id) |
| static bool | is_compatible (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect) |
Protected Attributes | |
| bool | piece_valid |
| Rect< N, T > | piece_bounds |
| uintptr_t | piece_base |
| Point< N, size_t > | piece_strides |
| const PieceLookup::Instruction * | start_inst |
| size_t | field_offset |
Friends | |
| std::ostream & | operator (std::ostream &os, const MultiAffineAccessor< FT, N, T > &a) |
A multi-affine accessor handles instances with multiple pieces, but only if all of them are affine. Multi-affine accessors may be accessed and copied in CUDA device code, but must be initially constructed on the host. The random-access look-ups are O(log(N)) in the number of pieces.
| REALM_CUDA_HD Realm::MultiAffineAccessor< FT, N, T >::MultiAffineAccessor | ( | void | ) |
| Realm::MultiAffineAccessor< FT, N, T >::MultiAffineAccessor | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| size_t | subfield_offset = 0 |
||
| ) |
Construct a multi-affine accessor for the given instance and field. The accessor will implicitly try to cover the entire instance's domain. NOTE: This constructor will crash if the conversion is not allowed - call is_compatible(...) first if you're not sure.
| inst | The instance to access. |
| field_id | The field to access. |
| subfield_offset | The offset of the subfield to access. |
| Realm::MultiAffineAccessor< FT, N, T >::MultiAffineAccessor | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| const Rect< N, T > & | subrect, | ||
| size_t | subfield_offset = 0 |
||
| ) |
Construct a multi-affine accessor for the given instance and field. Limits the domain to the given subrectangle. (NOTE: subrect need not be entirely covered by the instance - a legal access must be both within the subrect AND within the coverage of the instance.)
| inst | The instance to access. |
| field_id | The field to access. |
| subrect | The subrectangle to limit the domain to. |
| subfield_offset | The offset of the subfield to access. |
| REALM_CUDA_HD Realm::MultiAffineAccessor< FT, N, T >::~MultiAffineAccessor | ( | void | ) |
|
default |
|
defaultnoexcept |
|
static |
|
static |
|
default |
|
defaultnoexcept |
| REALM_CUDA_HD FT & Realm::MultiAffineAccessor< FT, N, T >::operator[] | ( | const Point< N, T > & | p | ) |
| REALM_CUDA_HD FT & Realm::MultiAffineAccessor< FT, N, T >::operator[] | ( | const Point< N, T > & | p | ) | const |
| REALM_CUDA_HD FT * Realm::MultiAffineAccessor< FT, N, T >::ptr | ( | const Point< N, T > & | p | ) |
| REALM_CUDA_HD FT * Realm::MultiAffineAccessor< FT, N, T >::ptr | ( | const Point< N, T > & | p | ) | const |
Return a pointer to the given point in the instance. Nonconst version is allowed to remember the most-recently-accessed piece.
| p | The point to access. |
| REALM_CUDA_HD FT * Realm::MultiAffineAccessor< FT, N, T >::ptr | ( | const Rect< N, T > & | r, |
| size_t | strides[N] | ||
| ) |
| REALM_CUDA_HD FT * Realm::MultiAffineAccessor< FT, N, T >::ptr | ( | const Rect< N, T > & | r, |
| size_t | strides[N] | ||
| ) | const |
| REALM_CUDA_HD FT Realm::MultiAffineAccessor< FT, N, T >::read | ( | const Point< N, T > & | p | ) |
| REALM_CUDA_HD FT Realm::MultiAffineAccessor< FT, N, T >::read | ( | const Point< N, T > & | p | ) | const |
| REALM_CUDA_HD void Realm::MultiAffineAccessor< FT, N, T >::reset | ( | ) |
| void Realm::MultiAffineAccessor< FT, N, T >::reset | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| const Rect< N, T > & | subrect, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| void Realm::MultiAffineAccessor< FT, N, T >::reset | ( | RegionInstance | inst, |
| FieldID | field_id, | ||
| size_t | subfield_offset = 0 |
||
| ) |
| REALM_CUDA_HD void Realm::MultiAffineAccessor< FT, N, T >::write | ( | const Point< N, T > & | p, |
| FT | newval | ||
| ) |
| REALM_CUDA_HD void Realm::MultiAffineAccessor< FT, N, T >::write | ( | const Point< N, T > & | p, |
| FT | newval | ||
| ) | const |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |