Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::Cuda::GPUIndirectChannel Class Reference
module nullptr

#include <cuda_internal.h>

Inheritance diagram for Realm::Cuda::GPUIndirectChannel:
Collaboration diagram for Realm::Cuda::GPUIndirectChannel:

Public Member Functions

 GPUIndirectChannel (GPU *_src_gpu, XferDesKind _kind, BackgroundWorkManager *bgwork)
 
 ~GPUIndirectChannel ()
 
virtual bool needs_wrapping_iterator () const
 
virtual Memory suggest_ib_memories () const
 
virtual RemoteChannelInfoconstruct_remote_info () const
 
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 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)
 
long submit (Request **requests, long nr)
 
GPUget_gpu () const
 
- Public Member Functions inherited from Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >
 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 Memory suggest_ib_memories_for_node (NodeID node) const
 
void print (std::ostream &os) const
 

Static Public Attributes

static const bool is_ordered = true
 

Protected Attributes

GPUsrc_gpu
 
- Protected Attributes inherited from Realm::SingleXDQChannel< GPUIndirectChannel, GPUIndirectXferDes >
XDQueue< GPUIndirectChannel, GPUIndirectXferDes > xdq
 
- Protected Attributes inherited from Realm::LocalChannel
SimpleXferDesFactory factory_singleton
 
- Protected Attributes inherited from Realm::Channel
std::vector< SupportedPathpaths
 

Friends

class GPUIndirectXferDes
 

Additional Inherited Members

- Public Attributes inherited from Realm::Channel
NodeID node
 
XferDesKind kind
 
bool has_redop_path {false}
 
bool has_non_redop_path {false}
 
- 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)
 

Constructor & Destructor Documentation

◆ GPUIndirectChannel()

Realm::Cuda::GPUIndirectChannel::GPUIndirectChannel ( GPU _src_gpu,
XferDesKind  _kind,
BackgroundWorkManager bgwork 
)

◆ ~GPUIndirectChannel()

Realm::Cuda::GPUIndirectChannel::~GPUIndirectChannel ( )

Member Function Documentation

◆ construct_remote_info()

virtual RemoteChannelInfo * Realm::Cuda::GPUIndirectChannel::construct_remote_info ( ) const
virtual

Reimplemented from Realm::Channel.

◆ create_xfer_des()

virtual XferDes * Realm::Cuda::GPUIndirectChannel::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.

◆ get_gpu()

GPU * Realm::Cuda::GPUIndirectChannel::get_gpu ( ) const
inline

◆ needs_wrapping_iterator()

virtual bool Realm::Cuda::GPUIndirectChannel::needs_wrapping_iterator ( ) const
virtual

Reimplemented from Realm::Channel.

◆ submit()

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

Implements Realm::Channel.

◆ suggest_ib_memories()

virtual Memory Realm::Cuda::GPUIndirectChannel::suggest_ib_memories ( ) const
virtual

Reimplemented from Realm::Channel.

◆ supports_indirection_memory()

virtual bool Realm::Cuda::GPUIndirectChannel::supports_indirection_memory ( Memory  mem) const
virtual

Queries if a given mem can be used as an indirection buffer.

Parameters
memMemory to be used as an indirection buffer
Returns
True if the given mem can be used as an indirection buffer for a copy

Reimplemented from Realm::Channel.

◆ supports_path()

virtual uint64_t Realm::Cuda::GPUIndirectChannel::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.

Friends And Related Symbol Documentation

◆ GPUIndirectXferDes

friend class GPUIndirectXferDes
friend

Member Data Documentation

◆ is_ordered

const bool Realm::Cuda::GPUIndirectChannel::is_ordered = true
static

◆ src_gpu

GPU* Realm::Cuda::GPUIndirectChannel::src_gpu
protected

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