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

#include <cuda_module.h>

Inheritance diagram for Realm::Cuda::CudaModule:
Collaboration diagram for Realm::Cuda::CudaModule:

Public Member Functions

virtual ~CudaModule (void)
 
virtual void initialize (RuntimeImpl *runtime)
 
virtual void create_memories (RuntimeImpl *runtime)
 
virtual void create_processors (RuntimeImpl *runtime)
 
virtual void create_dma_channels (RuntimeImpl *runtime)
 
virtual void create_code_translators (RuntimeImpl *runtime)
 
virtual void pre_detach_cleanup (void)
 
virtual void cleanup (void)
 
CUstream_st * get_task_cuda_stream ()
 
void set_task_ctxsync_required (bool is_required)
 
Event make_realm_event (CUevent_st *cuda_event)
 Returns a Realm::Event that will be triggered after the given cuda_event has completed.
 
Event make_realm_event (CUstream_st *cuda_stream)
 Returns a Realm::Event that will be triggered after the given cuda_stream has completed it's currently queued work.
 
bool get_cuda_device_uuid (Processor p, Uuid *uuid) const
 
bool get_cuda_device_id (Processor p, int *device) const
 
bool get_cuda_context (Processor p, CUctx_st **context) const
 
bool register_reduction (Event &event, const CudaRedOpDesc *descs, size_t num)
 
- Public Member Functions inherited from Realm::Module
virtual ~Module (void)
 
const std::string & get_name (void) const
 

Static Public Member Functions

static ModuleConfigcreate_module_config (RuntimeImpl *runtime)
 
static Modulecreate_module (RuntimeImpl *runtime)
 

Public Attributes

CudaModuleConfigconfig
 
RuntimeImplruntime
 
GPUWorkershared_worker
 
std::map< GPU *, GPUWorker * > dedicated_workers
 
std::vector< GPUInfo * > gpu_info
 
std::vector< GPU * > gpus
 
void * zcmem_cpu_base
 
void * zcib_cpu_base
 
GPUZCMemoryzcmem
 
void * uvm_base
 
GPUZCMemoryuvmmem
 
GPUReplHeapListenerrh_listener
 
atomic< bool > initialization_complete
 
Mutex cudaipc_mutex
 
Mutex::CondVar cudaipc_condvar
 
atomic< size_t > cudaipc_responses_received {0}
 
int cuda_api_version = 0
 

Protected Member Functions

 CudaModule (RuntimeImpl *_runtime)
 
- Protected Member Functions inherited from Realm::Module
 Module (const std::string &_name)
 

Additional Inherited Members

- Protected Attributes inherited from Realm::Module
std::string name
 

Constructor & Destructor Documentation

◆ CudaModule()

Realm::Cuda::CudaModule::CudaModule ( RuntimeImpl _runtime)
protected

◆ ~CudaModule()

virtual Realm::Cuda::CudaModule::~CudaModule ( void  )
virtual

Member Function Documentation

◆ cleanup()

virtual void Realm::Cuda::CudaModule::cleanup ( void  )
virtual

Reimplemented from Realm::Module.

◆ create_code_translators()

virtual void Realm::Cuda::CudaModule::create_code_translators ( RuntimeImpl runtime)
virtual

Reimplemented from Realm::Module.

◆ create_dma_channels()

virtual void Realm::Cuda::CudaModule::create_dma_channels ( RuntimeImpl runtime)
virtual

Reimplemented from Realm::Module.

◆ create_memories()

virtual void Realm::Cuda::CudaModule::create_memories ( RuntimeImpl runtime)
virtual

Reimplemented from Realm::Module.

◆ create_module()

static Module * Realm::Cuda::CudaModule::create_module ( RuntimeImpl runtime)
static

◆ create_module_config()

static ModuleConfig * Realm::Cuda::CudaModule::create_module_config ( RuntimeImpl runtime)
static

◆ create_processors()

virtual void Realm::Cuda::CudaModule::create_processors ( RuntimeImpl runtime)
virtual

Reimplemented from Realm::Module.

◆ get_cuda_context()

bool Realm::Cuda::CudaModule::get_cuda_context ( Processor  p,
CUctx_st **  context 
) const

◆ get_cuda_device_id()

bool Realm::Cuda::CudaModule::get_cuda_device_id ( Processor  p,
int *  device 
) const

◆ get_cuda_device_uuid()

bool Realm::Cuda::CudaModule::get_cuda_device_uuid ( Processor  p,
Uuid uuid 
) const

◆ get_task_cuda_stream()

CUstream_st * Realm::Cuda::CudaModule::get_task_cuda_stream ( )

◆ initialize()

virtual void Realm::Cuda::CudaModule::initialize ( RuntimeImpl runtime)
virtual

Reimplemented from Realm::Module.

◆ make_realm_event() [1/2]

Event Realm::Cuda::CudaModule::make_realm_event ( CUevent_st *  cuda_event)

Returns a Realm::Event that will be triggered after the given cuda_event has completed.

Parameters
cuda_eventThe cuda event that has been recorded on some stream
Returns
A Realm::Event that is triggered some time after the given cuda_event

◆ make_realm_event() [2/2]

Event Realm::Cuda::CudaModule::make_realm_event ( CUstream_st *  cuda_stream)

Returns a Realm::Event that will be triggered after the given cuda_stream has completed it's currently queued work.

Parameters
cuda_streamThe cuda stream who's currently queued work must complete before the Realm::Event triggers
Returns
A Realm::Event that is triggered some time after the given cuda_stream completes

◆ pre_detach_cleanup()

virtual void Realm::Cuda::CudaModule::pre_detach_cleanup ( void  )
virtual

Reimplemented from Realm::Module.

◆ register_reduction()

bool Realm::Cuda::CudaModule::register_reduction ( Event event,
const CudaRedOpDesc descs,
size_t  num 
)

◆ set_task_ctxsync_required()

void Realm::Cuda::CudaModule::set_task_ctxsync_required ( bool  is_required)

Member Data Documentation

◆ config

CudaModuleConfig* Realm::Cuda::CudaModule::config

◆ cuda_api_version

int Realm::Cuda::CudaModule::cuda_api_version = 0

◆ cudaipc_condvar

Mutex::CondVar Realm::Cuda::CudaModule::cudaipc_condvar

◆ cudaipc_mutex

Mutex Realm::Cuda::CudaModule::cudaipc_mutex

◆ cudaipc_responses_received

atomic<size_t> Realm::Cuda::CudaModule::cudaipc_responses_received {0}

◆ dedicated_workers

std::map<GPU *, GPUWorker *> Realm::Cuda::CudaModule::dedicated_workers

◆ gpu_info

std::vector<GPUInfo *> Realm::Cuda::CudaModule::gpu_info

◆ gpus

std::vector<GPU *> Realm::Cuda::CudaModule::gpus

◆ initialization_complete

atomic<bool> Realm::Cuda::CudaModule::initialization_complete

◆ rh_listener

GPUReplHeapListener* Realm::Cuda::CudaModule::rh_listener

◆ runtime

RuntimeImpl* Realm::Cuda::CudaModule::runtime

◆ shared_worker

GPUWorker* Realm::Cuda::CudaModule::shared_worker

◆ uvm_base

void* Realm::Cuda::CudaModule::uvm_base

◆ uvmmem

GPUZCMemory* Realm::Cuda::CudaModule::uvmmem

◆ zcib_cpu_base

void * Realm::Cuda::CudaModule::zcib_cpu_base

◆ zcmem

GPUZCMemory* Realm::Cuda::CudaModule::zcmem

◆ zcmem_cpu_base

void* Realm::Cuda::CudaModule::zcmem_cpu_base

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