Legion Runtime
|
#include <legion.h>
Public Member Functions | |
RegionRequirement (LogicalRegion _handle, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalPartition pid, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalPartition pid, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, ProjectionID _proj, const std::set< FieldID > &privilege_fields, const std::vector< FieldID > &instance_fields, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalPartition pid, ProjectionID _proj, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, ProjectionID _proj, PrivilegeMode _priv, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalPartition pid, ProjectionID _proj, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (LogicalRegion _handle, ProjectionID _proj, ReductionOpID op, CoherenceProperty _prop, LogicalRegion _parent, MappingTagID _tag=0, bool _verified=false) | |
RegionRequirement (const RegionRequirement &rhs) | |
RegionRequirement & | operator= (const RegionRequirement &req) |
bool | operator== (const RegionRequirement &req) const |
bool | operator< (const RegionRequirement &req) const |
RegionRequirement & | add_field (FieldID fid, bool instance=true) |
RegionRequirement & | add_fields (const std::vector< FieldID > &fids, bool instance=true) |
RegionRequirement & | add_flags (RegionFlags new_flags) |
bool | is_verified (void) const |
bool | is_no_access (void) const |
bool | is_restricted (void) const |
bool | must_premap (void) const |
const void * | get_projection_args (size_t *size) const |
void | set_projection_args (const void *args, size_t size, bool own=false) |
bool | has_field_privilege (FieldID fid) const |
Public Attributes | |
LogicalRegion | region |
LogicalPartition | partition |
std::set< FieldID > | privilege_fields |
std::vector< FieldID > | instance_fields |
PrivilegeMode | privilege |
CoherenceProperty | prop |
LogicalRegion | parent |
ReductionOpID | redop |
MappingTagID | tag |
RegionFlags | flags |
ProjectionType | handle_type |
ProjectionID | projection |
void * | projection_args |
size_t | projection_args_size |
Region requirements are the objects used to name the logical regions that are used by tasks, copies, and inline mapping operations. Region requirements can name either logical regions or logical partitions in for index space launches. In addition to placing logical upper bounds on the privileges required for an operation, region requirements also specify the privileges and coherence modes associated with the needed logical region/partition. Region requirements have a series of constructors for different scenarios. All fields in region requirements are publicly visible so applications can mutate them freely including configuring region requirements in ways not supported with the default set of constructors.
Legion::RegionRequirement::RegionRequirement | ( | LogicalRegion | _handle, |
const std::set< FieldID > & | privilege_fields, | ||
const std::vector< FieldID > & | instance_fields, | ||
PrivilegeMode | _priv, | ||
CoherenceProperty | _prop, | ||
LogicalRegion | _parent, | ||
MappingTagID | _tag = 0 , |
||
bool | _verified = false |
||
) |
Standard region requirement constructor for logical region
Legion::RegionRequirement::RegionRequirement | ( | LogicalPartition | pid, |
ProjectionID | _proj, | ||
const std::set< FieldID > & | privilege_fields, | ||
const std::vector< FieldID > & | instance_fields, | ||
PrivilegeMode | _priv, | ||
CoherenceProperty | _prop, | ||
LogicalRegion | _parent, | ||
MappingTagID | _tag = 0 , |
||
bool | _verified = false |
||
) |
Partition region requirement with projection function
Legion::RegionRequirement::RegionRequirement | ( | LogicalRegion | _handle, |
ProjectionID | _proj, | ||
const std::set< FieldID > & | privilege_fields, | ||
const std::vector< FieldID > & | instance_fields, | ||
PrivilegeMode | _priv, | ||
CoherenceProperty | _prop, | ||
LogicalRegion | _parent, | ||
MappingTagID | _tag = 0 , |
||
bool | _verified = false |
||
) |
Region requirement with projection function
Legion::RegionRequirement::RegionRequirement | ( | LogicalRegion | _handle, |
const std::set< FieldID > & | privilege_fields, | ||
const std::vector< FieldID > & | instance_fields, | ||
ReductionOpID | op, | ||
CoherenceProperty | _prop, | ||
LogicalRegion | _parent, | ||
MappingTagID | _tag = 0 , |
||
bool | _verified = false |
||
) |
Standard reduction region requirement. Note no privilege is passed, but instead a reduction operation ID is specified.
Legion::RegionRequirement::RegionRequirement | ( | LogicalPartition | pid, |
ProjectionID | _proj, | ||
const std::set< FieldID > & | privilege_fields, | ||
const std::vector< FieldID > & | instance_fields, | ||
ReductionOpID | op, | ||
CoherenceProperty | _prop, | ||
LogicalRegion | _parent, | ||
MappingTagID | _tag = 0 , |
||
bool | _verified = false |
||
) |
Partition region requirement for reduction.
Legion::RegionRequirement::RegionRequirement | ( | LogicalRegion | _handle, |
ProjectionID | _proj, | ||
const std::set< FieldID > & | privilege_fields, | ||
const std::vector< FieldID > & | instance_fields, | ||
ReductionOpID | op, | ||
CoherenceProperty | _prop, | ||
LogicalRegion | _parent, | ||
MappingTagID | _tag = 0 , |
||
bool | _verified = false |
||
) |
Projection logical region requirement for reduction
|
inline |
Method for adding a field to region requirements
fid | field ID to add |
instance | indicate whether to add to instance fields |
RegionFlags Legion::RegionRequirement::flags |
optional flags set for region requirements
ProjectionType Legion::RegionRequirement::handle_type |
region or partition requirement
std::vector<FieldID> Legion::RegionRequirement::instance_fields |
physical instance fields
LogicalRegion Legion::RegionRequirement::parent |
parent region to derive privileges from
LogicalPartition Legion::RegionRequirement::partition |
mutually exclusive with region
PrivilegeMode Legion::RegionRequirement::privilege |
region privilege mode
std::set<FieldID> Legion::RegionRequirement::privilege_fields |
unique set of privilege fields
ProjectionID Legion::RegionRequirement::projection |
projection function for index space tasks
void* Legion::RegionRequirement::projection_args |
projection arguments buffer
size_t Legion::RegionRequirement::projection_args_size |
projection arguments buffer size
CoherenceProperty Legion::RegionRequirement::prop |
region coherence mode
ReductionOpID Legion::RegionRequirement::redop |
reduction operation (default 0)
LogicalRegion Legion::RegionRequirement::region |
mutually exclusive with partition
MappingTagID Legion::RegionRequirement::tag |
mapping tag for this region requirement