Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::IndirectionInfoTyped< N, T, N2, T2 > Class Template Reference

#include <transfer.h>

Inheritance diagram for Realm::IndirectionInfoTyped< N, T, N2, T2 >:
Collaboration diagram for Realm::IndirectionInfoTyped< N, T, N2, T2 >:

Public Member Functions

 IndirectionInfoTyped (const IndexSpace< N, T > &is, const typename CopyIndirection< N, T >::template Unstructured< N2, T2 > &ind, Channel *_addr_split_channel)
 
virtual Event request_metadata (void)
 
virtual RegionInstance get_pointer_instance (void) const
 
virtual const std::vector< RegionInstance > * get_instances (void) const
 
virtual FieldID get_field (void) const
 
virtual TransferIteratorcreate_address_iterator (RegionInstance peer) const
 
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
 
virtual void print (std::ostream &os) const
 
- Public Member Functions inherited from 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)
 
- Public Member Functions inherited from Realm::IndirectionInfo
virtual ~IndirectionInfo (void)
 

Protected Member Functions

virtual size_t num_spaces () const
 
virtual void populate_copy_info (ChannelCopyInfo &info) const
 
virtual size_t domain_size () const
 
virtual size_t address_size () const
 
virtual XferDesFactorycreate_addrsplit_factory (size_t bytes_per_element) const
 
- Protected Member Functions inherited from Realm::IndirectionInfoBase
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)
 

Protected Attributes

IndexSpace< N, T > domain
 
std::vector< IndexSpace< N2, T2 > > spaces
 
Channeladdr_split_channel
 
- Protected Attributes inherited from Realm::IndirectionInfoBase
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

◆ IndirectionInfoTyped()

template<int N, typename T , int N2, typename T2 >
Realm::IndirectionInfoTyped< N, T, N2, T2 >::IndirectionInfoTyped ( const IndexSpace< N, T > &  is,
const typename CopyIndirection< N, T >::template Unstructured< N2, T2 > &  ind,
Channel _addr_split_channel 
)

Member Function Documentation

◆ address_size()

template<int N, typename T , int N2, typename T2 >
virtual size_t Realm::IndirectionInfoTyped< N, T, N2, T2 >::address_size ( ) const
protectedvirtual

◆ create_address_iterator()

template<int N, typename T , int N2, typename T2 >
virtual TransferIterator * Realm::IndirectionInfoTyped< N, T, N2, T2 >::create_address_iterator ( RegionInstance  peer) const
virtual

◆ create_addrsplit_factory()

template<int N, typename T , int N2, typename T2 >
virtual XferDesFactory * Realm::IndirectionInfoTyped< N, T, N2, T2 >::create_addrsplit_factory ( size_t  bytes_per_element) const
protectedvirtual

◆ create_indirect_iterator()

template<int N, typename T , int N2, typename T2 >
virtual TransferIterator * Realm::IndirectionInfoTyped< N, T, N2, T2 >::create_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
virtual

◆ domain_size()

template<int N, typename T , int N2, typename T2 >
virtual size_t Realm::IndirectionInfoTyped< N, T, N2, T2 >::domain_size ( ) const
protectedvirtual

◆ get_field()

template<int N, typename T , int N2, typename T2 >
virtual FieldID Realm::IndirectionInfoTyped< N, T, N2, T2 >::get_field ( void  ) const
virtual

◆ get_instances()

template<int N, typename T , int N2, typename T2 >
virtual const std::vector< RegionInstance > * Realm::IndirectionInfoTyped< N, T, N2, T2 >::get_instances ( void  ) const
virtual

◆ get_pointer_instance()

template<int N, typename T , int N2, typename T2 >
virtual RegionInstance Realm::IndirectionInfoTyped< N, T, N2, T2 >::get_pointer_instance ( void  ) const
virtual

◆ num_spaces()

template<int N, typename T , int N2, typename T2 >
virtual size_t Realm::IndirectionInfoTyped< N, T, N2, T2 >::num_spaces ( ) const
protectedvirtual

◆ populate_copy_info()

template<int N, typename T , int N2, typename T2 >
virtual void Realm::IndirectionInfoTyped< N, T, N2, T2 >::populate_copy_info ( ChannelCopyInfo info) const
protectedvirtual

◆ print()

template<int N, typename T , int N2, typename T2 >
virtual void Realm::IndirectionInfoTyped< N, T, N2, T2 >::print ( std::ostream &  os) const
virtual

◆ request_metadata()

template<int N, typename T , int N2, typename T2 >
virtual Event Realm::IndirectionInfoTyped< N, T, N2, T2 >::request_metadata ( void  )
virtual

Member Data Documentation

◆ addr_split_channel

template<int N, typename T , int N2, typename T2 >
Channel* Realm::IndirectionInfoTyped< N, T, N2, T2 >::addr_split_channel
protected

◆ domain

template<int N, typename T , int N2, typename T2 >
IndexSpace<N, T> Realm::IndirectionInfoTyped< N, T, N2, T2 >::domain
protected

◆ spaces

template<int N, typename T , int N2, typename T2 >
std::vector<IndexSpace<N2, T2> > Realm::IndirectionInfoTyped< N, T, N2, T2 >::spaces
protected

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