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  GPUFuncInfo
 
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 (const GPU *peer) const
 
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 ()
 
void launch_batch_affine_kernel (void *copy_info, size_t dim, size_t elemSize, size_t volume, GPUStream *stream, size_t arg_size)
 
void launch_batch_affine_fill_kernel (void *fill_info, size_t dim, size_t elem_size, size_t volume, size_t arg_size, GPUStream *stream)
 
void launch_transpose_kernel (MemcpyTransposeInfo< size_t > &copy_info, size_t elemSize, GPUStream *stream)
 
void launch_indirect_copy_kernel (void *copy_info, size_t dim, size_t addr_size, size_t field_size, size_t volume, size_t arg_size, GPUStream *stream)
 
bool is_accessible_host_mem (const MemoryImpl *mem) const
 
bool is_accessible_gpu_mem (const MemoryImpl *mem) const
 
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
 
hipModule_t device_module = nullptr
 
GPUFuncInfo batch_affine_kernels [REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]
 
GPUFuncInfo batch_affine_fill_kernels [REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]
 
GPUFuncInfo fill_affine_large_kernels [REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]
 
GPUFuncInfo indirect_copy_kernels [REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]
 
GPUFuncInfo transpose_kernels [HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]
 
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
 

Static Public Attributes

static const size_t HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES = 5
 

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 ( const GPU peer) const

◆ 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

◆ is_accessible_gpu_mem()

bool Realm::Hip::GPU::is_accessible_gpu_mem ( const MemoryImpl mem) const

◆ is_accessible_host_mem()

bool Realm::Hip::GPU::is_accessible_host_mem ( const MemoryImpl mem) const

◆ launch_batch_affine_fill_kernel()

void Realm::Hip::GPU::launch_batch_affine_fill_kernel ( void *  fill_info,
size_t  dim,
size_t  elem_size,
size_t  volume,
size_t  arg_size,
GPUStream stream 
)

◆ launch_batch_affine_kernel()

void Realm::Hip::GPU::launch_batch_affine_kernel ( void *  copy_info,
size_t  dim,
size_t  elemSize,
size_t  volume,
GPUStream stream,
size_t  arg_size 
)

◆ launch_indirect_copy_kernel()

void Realm::Hip::GPU::launch_indirect_copy_kernel ( void *  copy_info,
size_t  dim,
size_t  addr_size,
size_t  field_size,
size_t  volume,
size_t  arg_size,
GPUStream stream 
)

◆ launch_transpose_kernel()

void Realm::Hip::GPU::launch_transpose_kernel ( MemcpyTransposeInfo< size_t > &  copy_info,
size_t  elemSize,
GPUStream stream 
)

◆ 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

◆ batch_affine_fill_kernels

GPUFuncInfo Realm::Hip::GPU::batch_affine_fill_kernels[REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]

◆ batch_affine_kernels

GPUFuncInfo Realm::Hip::GPU::batch_affine_kernels[REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]

◆ device_id

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

◆ device_module

hipModule_t Realm::Hip::GPU::device_module = nullptr

◆ 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

◆ fill_affine_large_kernels

GPUFuncInfo Realm::Hip::GPU::fill_affine_large_kernels[REALM_MAX_DIM][HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]

◆ greatest_stream_priority

int Realm::Hip::GPU::greatest_stream_priority

◆ HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES

const size_t Realm::Hip::GPU::HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES = 5
static

◆ 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

◆ indirect_copy_kernels

◆ 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

◆ transpose_kernels

GPUFuncInfo Realm::Hip::GPU::transpose_kernels[HIP_MEMCPY_KERNEL_MAX2_LOG2_BYTES]

◆ worker

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

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