![]() |
Realm
A distributed, event-based tasking library
|
#include <channel.h>
Classes | |
| struct | SupportedPath |
Public Member Functions | |
| Channel (XferDesKind _kind) | |
| virtual | ~Channel () |
| virtual void | shutdown () |
| virtual XferDesFactory * | get_factory ()=0 |
| virtual bool | supports_redop (ReductionOpID redop_id) const |
| virtual long | progress_xd (XferDes *xd, long max_nr) |
| virtual long | submit (Request **requests, long nr)=0 |
| virtual void | pull ()=0 |
| virtual long | available ()=0 |
| const std::vector< SupportedPath > & | get_paths (void) const |
| void | update_channel_state (void) |
| 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 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 RemoteChannelInfo * | construct_remote_info () const |
| void | print (std::ostream &os) const |
| virtual void | enqueue_ready_xd (XferDes *xd)=0 |
| virtual void | wakeup_xd (XferDes *xd)=0 |
Public Attributes | |
| NodeID | node |
| XferDesKind | kind |
| bool | has_redop_path {false} |
| bool | has_non_redop_path {false} |
Protected Member Functions | |
| SupportedPath & | add_path (span< const Memory > src_mems, span< const Memory > dst_mems, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind) |
| SupportedPath & | add_path (span< const Memory > src_mems, Memory::Kind dst_kind, bool dst_global, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind) |
| SupportedPath & | add_path (Memory::Kind src_kind, bool src_global, span< const Memory > dst_mems, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind) |
| SupportedPath & | add_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) |
| SupportedPath & | add_path (bool local_loopback, unsigned bandwidth, unsigned latency, unsigned frag_overhead, XferDesKind xd_kind) |
Protected Attributes | |
| std::vector< SupportedPath > | paths |
|
inline |
|
inlinevirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
pure virtual |
Implemented in Realm::SingleXDQChannel< CHANNEL, XD >, Realm::SingleXDQChannel< AddressSplitChannel, AddressSplitXferDesBase >, Realm::SingleXDQChannel< DiskChannel, DiskXferDes >, Realm::SingleXDQChannel< FileChannel, FileXferDes >, Realm::SingleXDQChannel< GASNetChannel, GASNetXferDes >, Realm::SingleXDQChannel< GPUChannel, GPUXferDes >, Realm::SingleXDQChannel< GPUfillChannel, GPUfillXferDes >, Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >, Realm::SingleXDQChannel< GPUreduceChannel, GPUreduceXferDes >, Realm::SingleXDQChannel< HDF5Channel, HDF5XferDes >, Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >, Realm::SingleXDQChannel< MemfillChannel, MemfillXferDes >, Realm::SingleXDQChannel< MemreduceChannel, MemreduceXferDes >, Realm::SingleXDQChannel< RemoteWriteChannel, RemoteWriteXferDes >, and Realm::RemoteChannel.
|
virtual |
Reimplemented in Realm::Cuda::GPUIndirectChannel, Realm::Hip::GPUreduceChannel, and Realm::Cuda::GPUreduceChannel.
|
pure virtual |
Implemented in Realm::AddressSplitChannel, Realm::SingleXDQChannel< CHANNEL, XD >, Realm::SingleXDQChannel< AddressSplitChannel, AddressSplitXferDesBase >, Realm::SingleXDQChannel< DiskChannel, DiskXferDes >, Realm::SingleXDQChannel< FileChannel, FileXferDes >, Realm::SingleXDQChannel< GASNetChannel, GASNetXferDes >, Realm::SingleXDQChannel< GPUChannel, GPUXferDes >, Realm::SingleXDQChannel< GPUfillChannel, GPUfillXferDes >, Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >, Realm::SingleXDQChannel< GPUreduceChannel, GPUreduceXferDes >, Realm::SingleXDQChannel< HDF5Channel, HDF5XferDes >, Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >, Realm::SingleXDQChannel< MemfillChannel, MemfillXferDes >, Realm::SingleXDQChannel< MemreduceChannel, MemreduceXferDes >, Realm::SingleXDQChannel< RemoteWriteChannel, RemoteWriteXferDes >, and Realm::RemoteChannel.
|
pure virtual |
Implemented in Realm::LocalChannel, and Realm::RemoteChannel.
| const std::vector< SupportedPath > & Realm::Channel::get_paths | ( | void | ) | const |
|
inlinevirtual |
Reimplemented in Realm::Cuda::GPUIndirectChannel, and Realm::Cuda::GPUIndirectRemoteChannel.
| void Realm::Channel::print | ( | std::ostream & | os | ) | const |
|
virtual |
Reimplemented in Realm::SingleXDQChannel< CHANNEL, XD >, Realm::SingleXDQChannel< AddressSplitChannel, AddressSplitXferDesBase >, Realm::SingleXDQChannel< DiskChannel, DiskXferDes >, Realm::SingleXDQChannel< FileChannel, FileXferDes >, Realm::SingleXDQChannel< GASNetChannel, GASNetXferDes >, Realm::SingleXDQChannel< GPUChannel, GPUXferDes >, Realm::SingleXDQChannel< GPUfillChannel, GPUfillXferDes >, Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >, Realm::SingleXDQChannel< GPUreduceChannel, GPUreduceXferDes >, Realm::SingleXDQChannel< HDF5Channel, HDF5XferDes >, Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >, Realm::SingleXDQChannel< MemfillChannel, MemfillXferDes >, Realm::SingleXDQChannel< MemreduceChannel, MemreduceXferDes >, and Realm::SingleXDQChannel< RemoteWriteChannel, RemoteWriteXferDes >.
|
pure virtual |
Implemented in Realm::SingleXDQChannel< CHANNEL, XD >, Realm::SingleXDQChannel< AddressSplitChannel, AddressSplitXferDesBase >, Realm::SingleXDQChannel< DiskChannel, DiskXferDes >, Realm::SingleXDQChannel< FileChannel, FileXferDes >, Realm::SingleXDQChannel< GASNetChannel, GASNetXferDes >, Realm::SingleXDQChannel< GPUChannel, GPUXferDes >, Realm::SingleXDQChannel< GPUfillChannel, GPUfillXferDes >, Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >, Realm::SingleXDQChannel< GPUreduceChannel, GPUreduceXferDes >, Realm::SingleXDQChannel< HDF5Channel, HDF5XferDes >, Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >, Realm::SingleXDQChannel< MemfillChannel, MemfillXferDes >, Realm::SingleXDQChannel< MemreduceChannel, MemreduceXferDes >, Realm::SingleXDQChannel< RemoteWriteChannel, RemoteWriteXferDes >, and Realm::RemoteChannel.
|
inlinevirtual |
Reimplemented in Realm::SingleXDQChannel< CHANNEL, XD >, Realm::SingleXDQChannel< AddressSplitChannel, AddressSplitXferDesBase >, Realm::SingleXDQChannel< DiskChannel, DiskXferDes >, Realm::SingleXDQChannel< FileChannel, FileXferDes >, Realm::SingleXDQChannel< GASNetChannel, GASNetXferDes >, Realm::SingleXDQChannel< GPUChannel, GPUXferDes >, Realm::SingleXDQChannel< GPUfillChannel, GPUfillXferDes >, Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >, Realm::SingleXDQChannel< GPUreduceChannel, GPUreduceXferDes >, Realm::SingleXDQChannel< HDF5Channel, HDF5XferDes >, Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >, Realm::SingleXDQChannel< MemfillChannel, MemfillXferDes >, Realm::SingleXDQChannel< MemreduceChannel, MemreduceXferDes >, Realm::SingleXDQChannel< RemoteWriteChannel, RemoteWriteXferDes >, and Realm::RemoteChannel.
|
pure virtual |
Implemented in Realm::Cuda::GPUIndirectChannel, Realm::Cuda::GPUChannel, Realm::Cuda::GPUfillChannel, Realm::HDF5::HDF5Channel, Realm::Hip::GPUChannel, Realm::Hip::GPUfillChannel, Realm::Hip::GPUreduceChannel, Realm::AddressSplitChannel, Realm::MemfillChannel, Realm::MemreduceChannel, Realm::GASNetChannel, Realm::RemoteWriteChannel, Realm::FileChannel, Realm::DiskChannel, Realm::MemcpyChannel, Realm::Cuda::GPUreduceChannel, and Realm::RemoteChannel.
|
virtual |
Reimplemented in Realm::Cuda::GPUIndirectChannel, and Realm::Cuda::GPUIndirectRemoteChannel.
|
virtual |
Queries if a given mem can be used as an indirection buffer.
| mem | Memory to be used as an indirection buffer |
mem can be used as an indirection buffer for a copy Reimplemented in Realm::Cuda::GPUIndirectChannel, and Realm::RemoteChannel.
|
virtual |
Reimplemented in Realm::Cuda::GPUIndirectRemoteChannel, Realm::Cuda::GPUIndirectChannel, Realm::MemcpyChannel, and Realm::RemoteChannel.
|
virtual |
Reimplemented in Realm::Hip::GPUreduceChannel, Realm::MemreduceChannel, Realm::Cuda::GPUreduceChannel, and Realm::RemoteChannel.
| void Realm::Channel::update_channel_state | ( | void | ) |
|
pure virtual |
Implemented in Realm::SingleXDQChannel< CHANNEL, XD >, Realm::SingleXDQChannel< AddressSplitChannel, AddressSplitXferDesBase >, Realm::SingleXDQChannel< DiskChannel, DiskXferDes >, Realm::SingleXDQChannel< FileChannel, FileXferDes >, Realm::SingleXDQChannel< GASNetChannel, GASNetXferDes >, Realm::SingleXDQChannel< GPUChannel, GPUXferDes >, Realm::SingleXDQChannel< GPUfillChannel, GPUfillXferDes >, Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >, Realm::SingleXDQChannel< GPUreduceChannel, GPUreduceXferDes >, Realm::SingleXDQChannel< HDF5Channel, HDF5XferDes >, Realm::SingleXDQChannel< MemcpyChannel, MemcpyXferDes >, Realm::SingleXDQChannel< MemfillChannel, MemfillXferDes >, Realm::SingleXDQChannel< MemreduceChannel, MemreduceXferDes >, Realm::SingleXDQChannel< RemoteWriteChannel, RemoteWriteXferDes >, and Realm::RemoteChannel.
| bool Realm::Channel::has_non_redop_path {false} |
| bool Realm::Channel::has_redop_path {false} |
| XferDesKind Realm::Channel::kind |
| NodeID Realm::Channel::node |
|
protected |