Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::IndirectionInfoBase Class Referenceabstract

#include <transfer.h>

Inheritance diagram for Realm::IndirectionInfoBase:
Collaboration diagram for Realm::IndirectionInfoBase:

Public Member Functions

 IndirectionInfoBase (bool _structured, FieldID _field_id, RegionInstance _inst, bool _is_ranges, bool _oor_possible, bool _aliasing_possible, size_t _subfield_offset, const std::vector< RegionInstance > _insts, Channel *_addrsplit_channel)
 
- Public Member Functions inherited from Realm::IndirectionInfo
virtual ~IndirectionInfo (void)
 
virtual Event request_metadata (void)=0
 
virtual RegionInstance get_pointer_instance (void) const =0
 
virtual const std::vector< RegionInstance > * get_instances (void) const =0
 
virtual FieldID get_field (void) const =0
 
virtual TransferIteratorcreate_address_iterator (RegionInstance peer) const =0
 
virtual TransferIteratorcreate_indirect_iterator (Memory addrs_mem, RegionInstance inst, const std::vector< FieldID > &fields, const std::vector< size_t > &fld_offsets, const std::vector< size_t > &fld_sizes, Channel *channel=nullptr) const =0
 
virtual void print (std::ostream &os) const =0
 

Protected Member Functions

virtual void generate_gather_paths (const Node *nodes_info, Memory dst_mem, TransferGraph::XDTemplate::IO dst_edge, unsigned indirect_idx, unsigned src_fld_start, unsigned src_fld_count, size_t bytes_per_element, CustomSerdezID serdez_id, std::vector< TransferGraph::XDTemplate > &xd_nodes, std::vector< TransferGraph::IBInfo > &ib_edges, std::vector< TransferDesc::FieldInfo > &src_fields)
 
virtual void generate_scatter_paths (Memory src_mem, TransferGraph::XDTemplate::IO src_edge, unsigned indirect_idx, unsigned dst_fld_start, unsigned dst_fld_count, size_t bytes_per_element, CustomSerdezID serdez_id, std::vector< TransferGraph::XDTemplate > &xd_nodes, std::vector< TransferGraph::IBInfo > &ib_edges, std::vector< TransferDesc::FieldInfo > &src_fields)
 
virtual size_t num_spaces () const =0
 
virtual void populate_copy_info (ChannelCopyInfo &info) const =0
 
virtual size_t domain_size () const =0
 
virtual size_t address_size () const =0
 
virtual XferDesFactorycreate_addrsplit_factory (size_t bytes_per_element) const =0
 

Protected Attributes

bool structured
 
FieldID field_id
 
RegionInstance inst
 
bool is_ranges
 
bool oor_possible
 
bool aliasing_possible
 
size_t subfield_offset
 
std::vector< RegionInstanceinsts
 
Channeladdrsplit_channel
 

Constructor & Destructor Documentation

◆ IndirectionInfoBase()

Realm::IndirectionInfoBase::IndirectionInfoBase ( bool  _structured,
FieldID  _field_id,
RegionInstance  _inst,
bool  _is_ranges,
bool  _oor_possible,
bool  _aliasing_possible,
size_t  _subfield_offset,
const std::vector< RegionInstance _insts,
Channel _addrsplit_channel 
)

Member Function Documentation

◆ address_size()

virtual size_t Realm::IndirectionInfoBase::address_size ( ) const
protectedpure virtual

◆ create_addrsplit_factory()

virtual XferDesFactory * Realm::IndirectionInfoBase::create_addrsplit_factory ( size_t  bytes_per_element) const
protectedpure virtual

◆ domain_size()

virtual size_t Realm::IndirectionInfoBase::domain_size ( ) const
protectedpure virtual

◆ generate_gather_paths()

virtual void Realm::IndirectionInfoBase::generate_gather_paths ( const Node nodes_info,
Memory  dst_mem,
TransferGraph::XDTemplate::IO  dst_edge,
unsigned  indirect_idx,
unsigned  src_fld_start,
unsigned  src_fld_count,
size_t  bytes_per_element,
CustomSerdezID  serdez_id,
std::vector< TransferGraph::XDTemplate > &  xd_nodes,
std::vector< TransferGraph::IBInfo > &  ib_edges,
std::vector< TransferDesc::FieldInfo > &  src_fields 
)
protectedvirtual

◆ generate_scatter_paths()

virtual void Realm::IndirectionInfoBase::generate_scatter_paths ( Memory  src_mem,
TransferGraph::XDTemplate::IO  src_edge,
unsigned  indirect_idx,
unsigned  dst_fld_start,
unsigned  dst_fld_count,
size_t  bytes_per_element,
CustomSerdezID  serdez_id,
std::vector< TransferGraph::XDTemplate > &  xd_nodes,
std::vector< TransferGraph::IBInfo > &  ib_edges,
std::vector< TransferDesc::FieldInfo > &  src_fields 
)
protectedvirtual

◆ num_spaces()

virtual size_t Realm::IndirectionInfoBase::num_spaces ( ) const
protectedpure virtual

◆ populate_copy_info()

virtual void Realm::IndirectionInfoBase::populate_copy_info ( ChannelCopyInfo info) const
protectedpure virtual

Member Data Documentation

◆ addrsplit_channel

Channel* Realm::IndirectionInfoBase::addrsplit_channel
protected

◆ aliasing_possible

bool Realm::IndirectionInfoBase::aliasing_possible
protected

◆ field_id

FieldID Realm::IndirectionInfoBase::field_id
protected

◆ inst

RegionInstance Realm::IndirectionInfoBase::inst
protected

◆ insts

std::vector<RegionInstance> Realm::IndirectionInfoBase::insts
protected

◆ is_ranges

bool Realm::IndirectionInfoBase::is_ranges
protected

◆ oor_possible

bool Realm::IndirectionInfoBase::oor_possible
protected

◆ structured

bool Realm::IndirectionInfoBase::structured
protected

◆ subfield_offset

size_t Realm::IndirectionInfoBase::subfield_offset
protected

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