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

#include <memcpy_channel.h>

Inheritance diagram for Realm::MemcpyChannel:
Collaboration diagram for Realm::MemcpyChannel:

Public Member Functions

 MemcpyChannel (BackgroundWorkManager *_bgwork, const Node *_node, const std::unordered_map< realm_id_t, SharedMemoryInfo > &remote_shared_memory_mappings)
 
 ~MemcpyChannel ()
 
virtual uint64_t supports_path (ChannelCopyInfo channel_copy_info, CustomSerdezID src_serdez_id, CustomSerdezID dst_serdez_id, ReductionOpID redop_id, size_t total_bytes, const std::vector< size_t > *src_frags, const std::vector< size_t > *dst_frags, XferDesKind *kind_ret=0, unsigned *bw_ret=0, unsigned *lat_ret=0)
 
virtual XferDescreate_xfer_des (uintptr_t dma_op, NodeID launch_node, XferDesID guid, const std::vector< XferDesPortInfo > &inputs_info, const std::vector< XferDesPortInfo > &outputs_info, int priority, XferDesRedopInfo redop_info, const void *fill_data, size_t fill_size, size_t fill_total)
 
virtual long submit (Request **requests, long nr)
 
- Public Member Functions inherited from Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >
 SingleXDQChannel (BackgroundWorkManager *bgwork, XferDesKind _kind, const std::string &_name, int _numa_domain=-1)
 
virtual void shutdown ()
 
virtual void enqueue_ready_xd (XferDes *xd)
 
virtual void wakeup_xd (XferDes *xd)
 
void pull ()
 
long available ()
 
virtual long progress_xd (XferDes *xd, long max_nr)
 
- Public Member Functions inherited from Realm::LocalChannel
 LocalChannel (XferDesKind _kind)
 
virtual XferDesFactoryget_factory ()
 
- Public Member Functions inherited from Realm::Channel
 Channel (XferDesKind _kind)
 
virtual ~Channel ()
 
virtual bool supports_redop (ReductionOpID redop_id) const
 
const std::vector< SupportedPath > & get_paths (void) const
 
void update_channel_state (void)
 
virtual bool supports_indirection_memory (Memory mem) const
 Queries if a given mem can be used as an indirection buffer.
 
virtual Memory suggest_ib_memories () const
 
virtual Memory suggest_ib_memories_for_node (NodeID node) const
 
virtual bool needs_wrapping_iterator () const
 
virtual RemoteChannelInfoconstruct_remote_info () const
 
void print (std::ostream &os) const
 

Public Attributes

const Nodenode = nullptr
 
bool is_stopped = false
 
- Public Attributes inherited from Realm::Channel
NodeID node
 
XferDesKind kind
 
bool has_redop_path {false}
 
bool has_non_redop_path {false}
 

Static Public Attributes

static const bool is_ordered = false
 

Additional Inherited Members

- Protected Member Functions inherited from Realm::Channel
SupportedPathadd_path (span< const Memory > src_mems, span< const Memory > dst_mems, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (span< const Memory > src_mems, Memory::Kind dst_kind, bool dst_global, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (Memory::Kind src_kind, bool src_global, span< const Memory > dst_mems, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (Memory::Kind src_kind, bool src_global, Memory::Kind dst_kind, bool dst_global, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
SupportedPathadd_path (bool local_loopback, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind)
 
- Protected Attributes inherited from Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >
XDQueue< MemcpyChannel, MemcpyXferDesxdq
 
- Protected Attributes inherited from Realm::LocalChannel
SimpleXferDesFactory factory_singleton
 
- Protected Attributes inherited from Realm::Channel
std::vector< SupportedPathpaths
 

Constructor & Destructor Documentation

◆ MemcpyChannel()

Realm::MemcpyChannel::MemcpyChannel ( BackgroundWorkManager _bgwork,
const Node _node,
const std::unordered_map< realm_id_t, SharedMemoryInfo > &  remote_shared_memory_mappings 
)

◆ ~MemcpyChannel()

Realm::MemcpyChannel::~MemcpyChannel ( )

Member Function Documentation

◆ create_xfer_des()

virtual XferDes * Realm::MemcpyChannel::create_xfer_des ( uintptr_t  dma_op,
NodeID  launch_node,
XferDesID  guid,
const std::vector< XferDesPortInfo > &  inputs_info,
const std::vector< XferDesPortInfo > &  outputs_info,
int  priority,
XferDesRedopInfo  redop_info,
const void *  fill_data,
size_t  fill_size,
size_t  fill_total 
)
virtual

Implements Realm::LocalChannel.

◆ submit()

virtual long Realm::MemcpyChannel::submit ( Request **  requests,
long  nr 
)
virtual

Implements Realm::Channel.

◆ supports_path()

virtual uint64_t Realm::MemcpyChannel::supports_path ( ChannelCopyInfo  channel_copy_info,
CustomSerdezID  src_serdez_id,
CustomSerdezID  dst_serdez_id,
ReductionOpID  redop_id,
size_t  total_bytes,
const std::vector< size_t > *  src_frags,
const std::vector< size_t > *  dst_frags,
XferDesKind kind_ret = 0,
unsigned *  bw_ret = 0,
unsigned *  lat_ret = 0 
)
virtual

Reimplemented from Realm::Channel.

Member Data Documentation

◆ is_ordered

const bool Realm::MemcpyChannel::is_ordered = false
static

◆ is_stopped

bool Realm::MemcpyChannel::is_stopped = false

◆ node

const Node* Realm::MemcpyChannel::node = nullptr

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