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

#include <hip_internal.h>

Collaboration diagram for Realm::Hip::GPU:

Classes

struct  HipIpcMapping
 

Public Member Functions

 GPU (HipModule *_module, GPUInfo *_info, GPUWorker *worker, int _device_id)
 
 ~GPU (void)
 
void push_context (void)
 
void pop_context (void)
 
void create_processor (RuntimeImpl *runtime, size_t stack_size)
 
void create_fb_memory (RuntimeImpl *runtime, size_t size, size_t ib_size)
 
void create_dynamic_fb_memory (RuntimeImpl *runtime, size_t max_size)
 
void create_dma_channels (Realm::RuntimeImpl *r)
 
bool can_access_peer (GPU *peer)
 
GPUStreamfind_stream (hipStream_t stream) const
 
REALM_INTERNAL_API_EXTERNAL_LINKAGE GPUStreamget_null_task_stream (void) const
 
GPUStreamget_next_task_stream (bool create=false)
 
GPUStreamget_next_d2d_stream ()
 
const HipIpcMappingfind_ipc_mapping (Memory mem) const
 

Public Attributes

GPUInfoinfo = nullptr
 
GPUWorkerworker = nullptr
 
GPUProcessorproc = nullptr
 
GPUFBMemoryfbmem = nullptr
 
GPUDynamicFBMemoryfb_dmem = nullptr
 
GPUFBIBMemoryfb_ibmem = nullptr
 
int device_id = -1
 
char * fbmem_base = nullptr
 
char * fb_ibmem_base = nullptr
 
std::set< Memorypinned_sysmems
 
std::set< Memorymanaged_mems
 
std::set< Memorypeer_fbs
 
GPUStreamhost_to_device_stream = nullptr
 
GPUStreamdevice_to_host_stream = nullptr
 
GPUStreamdevice_to_device_stream = nullptr
 
std::vector< GPUStream * > device_to_device_streams
 
std::vector< GPUStream * > peer_to_peer_streams
 
std::vector< GPUStream * > task_streams
 
atomic< unsigned > next_task_stream = atomic<unsigned>(0)
 
atomic< unsigned > next_d2d_stream = atomic<unsigned>(0)
 
GPUEventPool event_pool
 
int least_stream_priority
 
int greatest_stream_priority
 
std::vector< HipIpcMappinghipipc_mappings
 
std::map< NodeID, GPUStream * > hipipc_streams
 

Protected Member Functions

hipModule_t load_hip_module (const void *data)
 

Constructor & Destructor Documentation

◆ GPU()

Realm::Hip::GPU::GPU ( HipModule _module,
GPUInfo _info,
GPUWorker worker,
int  _device_id 
)

◆ ~GPU()

Realm::Hip::GPU::~GPU ( void  )

Member Function Documentation

◆ can_access_peer()

bool Realm::Hip::GPU::can_access_peer ( GPU peer)

◆ create_dma_channels()

void Realm::Hip::GPU::create_dma_channels ( Realm::RuntimeImpl r)

◆ create_dynamic_fb_memory()

void Realm::Hip::GPU::create_dynamic_fb_memory ( RuntimeImpl runtime,
size_t  max_size 
)

◆ create_fb_memory()

void Realm::Hip::GPU::create_fb_memory ( RuntimeImpl runtime,
size_t  size,
size_t  ib_size 
)

◆ create_processor()

void Realm::Hip::GPU::create_processor ( RuntimeImpl runtime,
size_t  stack_size 
)

◆ find_ipc_mapping()

const HipIpcMapping * Realm::Hip::GPU::find_ipc_mapping ( Memory  mem) const

◆ find_stream()

GPUStream * Realm::Hip::GPU::find_stream ( hipStream_t  stream) const

◆ get_next_d2d_stream()

GPUStream * Realm::Hip::GPU::get_next_d2d_stream ( )

◆ get_next_task_stream()

GPUStream * Realm::Hip::GPU::get_next_task_stream ( bool  create = false)

◆ get_null_task_stream()

REALM_INTERNAL_API_EXTERNAL_LINKAGE GPUStream * Realm::Hip::GPU::get_null_task_stream ( void  ) const

◆ load_hip_module()

hipModule_t Realm::Hip::GPU::load_hip_module ( const void *  data)
protected

◆ pop_context()

void Realm::Hip::GPU::pop_context ( void  )

◆ push_context()

void Realm::Hip::GPU::push_context ( void  )

Member Data Documentation

◆ device_id

int Realm::Hip::GPU::device_id = -1

◆ device_to_device_stream

GPUStream* Realm::Hip::GPU::device_to_device_stream = nullptr

◆ device_to_device_streams

std::vector<GPUStream *> Realm::Hip::GPU::device_to_device_streams

◆ device_to_host_stream

GPUStream* Realm::Hip::GPU::device_to_host_stream = nullptr

◆ event_pool

GPUEventPool Realm::Hip::GPU::event_pool

◆ fb_dmem

GPUDynamicFBMemory* Realm::Hip::GPU::fb_dmem = nullptr

◆ fb_ibmem

GPUFBIBMemory* Realm::Hip::GPU::fb_ibmem = nullptr

◆ fb_ibmem_base

char* Realm::Hip::GPU::fb_ibmem_base = nullptr

◆ fbmem

GPUFBMemory* Realm::Hip::GPU::fbmem = nullptr

◆ fbmem_base

char* Realm::Hip::GPU::fbmem_base = nullptr

◆ greatest_stream_priority

int Realm::Hip::GPU::greatest_stream_priority

◆ hipipc_mappings

std::vector<HipIpcMapping> Realm::Hip::GPU::hipipc_mappings

◆ hipipc_streams

std::map<NodeID, GPUStream *> Realm::Hip::GPU::hipipc_streams

◆ host_to_device_stream

GPUStream* Realm::Hip::GPU::host_to_device_stream = nullptr

◆ info

GPUInfo* Realm::Hip::GPU::info = nullptr

◆ least_stream_priority

int Realm::Hip::GPU::least_stream_priority

◆ managed_mems

std::set<Memory> Realm::Hip::GPU::managed_mems

◆ next_d2d_stream

atomic<unsigned> Realm::Hip::GPU::next_d2d_stream = atomic<unsigned>(0)

◆ next_task_stream

atomic<unsigned> Realm::Hip::GPU::next_task_stream = atomic<unsigned>(0)

◆ peer_fbs

std::set<Memory> Realm::Hip::GPU::peer_fbs

◆ peer_to_peer_streams

std::vector<GPUStream *> Realm::Hip::GPU::peer_to_peer_streams

◆ pinned_sysmems

std::set<Memory> Realm::Hip::GPU::pinned_sysmems

◆ proc

GPUProcessor* Realm::Hip::GPU::proc = nullptr

◆ task_streams

std::vector<GPUStream *> Realm::Hip::GPU::task_streams

◆ worker

GPUWorker* Realm::Hip::GPU::worker = nullptr

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