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

Classes

class  AddressInfoCudaArray
 
struct  AffineCopyInfo
 
struct  AffineCopyPair
 
struct  AffineFillInfo
 
struct  AffineFillRect
 
struct  AffineLargeFillInfo
 
struct  AffineSubRect
 
class  AutoGPUContext
 
class  ContextSynchronizer
 
class  CudaDeviceMemoryInfo
 
struct  CudaIpcImportRequest
 
class  CudaModule
 
class  CudaModuleConfig
 
struct  CudaRedOpDesc
 
struct  FatBin
 
class  GlobalRegistrations
 
class  GPU
 
class  GPUAllocation
 Class for managing the lifetime of a given gpu allocation. As instances of this class own an underlying resource they are not copyable and must be std::move'd (thus invalidating the original variable) or references made. More...
 
class  GPUChannel
 
class  GPUCompletionEvent
 
class  GPUCompletionNotification
 
class  GPUContextManager
 
class  GPUDynamicFBMemory
 
class  GPUEventPool
 
class  GPUFBIBMemory
 
class  GPUFBMemory
 
class  GPUfillChannel
 
class  GPUfillXferDes
 
class  GPUIndirectChannel
 
class  GPUIndirectRemoteChannel
 
class  GPUIndirectRemoteChannelInfo
 
class  GPUIndirectTransferCompletion
 
class  GPUIndirectXferDes
 
struct  GPUInfo
 
class  GPUProcessor
 
class  GPUreduceChannel
 
class  GPUreduceRemoteChannel
 
class  GPUreduceRemoteChannelInfo
 
class  GPUreduceXferDes
 
class  GPUReplHeapListener
 
class  GPURequest
 
class  GPUStream
 
class  GPUTransferCompletion
 
class  GPUWorker
 
class  GPUWorkFence
 
class  GPUWorkStart
 
class  GPUXferDes
 
class  GPUZCMemory
 
struct  MemcpyIndirectInfo
 
struct  MemcpyTransposeInfo
 
class  MemSpecificCudaArray
 
struct  RegisteredFunction
 
struct  RegisteredModule
 
struct  RegisteredVariable
 

Typedefs

typedef enum Realm::Cuda::nvmlIntNvLinkDeviceType_enum nvmlIntNvLinkDeviceType_t
 
typedef void(* StreamAwareTaskFuncPtr) (const void *args, size_t arglen, const void *user_data, size_t user_data_len, Processor proc, CUstream_st *stream)
 
typedef char Uuid[UUID_SIZE]
 

Enumerations

enum  GPUMemcpyKind { GPU_MEMCPY_HOST_TO_DEVICE , GPU_MEMCPY_DEVICE_TO_HOST , GPU_MEMCPY_DEVICE_TO_DEVICE , GPU_MEMCPY_PEER_TO_PEER }
 
enum  nvmlIntNvLinkDeviceType_enum { NVML_NVLINK_DEVICE_TYPE_GPU = 0x00 , NVML_NVLINK_DEVICE_TYPE_IBMNPU = 0x01 , NVML_NVLINK_DEVICE_TYPE_SWITCH = 0x02 , NVML_NVLINK_DEVICE_TYPE_UNKNOWN = 0xFF }
 

Functions

CUresult cuGetProcAddress (const char *, void **, int, int)
 
CUresult cuCtxRecordEvent (CUcontext hctx, CUevent event)
 
 CUDA_DRIVER_APIS (DECL_FNPTR_EXTERN)
 
nvmlReturn_t nvmlDeviceGetNvLinkRemoteDeviceType (nvmlDevice_t device, unsigned int link, nvmlIntNvLinkDeviceType_t *pNvLinkDeviceType)
 
REALM_PUBLIC_API CUstream_st * get_task_cuda_stream ()
 
REALM_PUBLIC_API void set_task_ctxsync_required (bool is_required)
 
REALM_PUBLIC_API bool get_cuda_device_uuid (Processor p, Uuid *uuid)
 
REALM_PUBLIC_API bool get_cuda_device_id (Processor p, int *device)
 

Variables

CudaModulecuda_module_singleton
 
bool cudart_hijack_active
 
int cudart_hijack_nongpu_sync
 

Typedef Documentation

◆ nvmlIntNvLinkDeviceType_t

◆ StreamAwareTaskFuncPtr

typedef void(* Realm::Cuda::StreamAwareTaskFuncPtr) (const void *args, size_t arglen, const void *user_data, size_t user_data_len, Processor proc, CUstream_st *stream)

◆ Uuid

typedef char Realm::Cuda::Uuid[UUID_SIZE]

Enumeration Type Documentation

◆ GPUMemcpyKind

Enumerator
GPU_MEMCPY_HOST_TO_DEVICE 
GPU_MEMCPY_DEVICE_TO_HOST 
GPU_MEMCPY_DEVICE_TO_DEVICE 
GPU_MEMCPY_PEER_TO_PEER 

◆ nvmlIntNvLinkDeviceType_enum

Enumerator
NVML_NVLINK_DEVICE_TYPE_GPU 
NVML_NVLINK_DEVICE_TYPE_IBMNPU 
NVML_NVLINK_DEVICE_TYPE_SWITCH 
NVML_NVLINK_DEVICE_TYPE_UNKNOWN 

Function Documentation

◆ cuCtxRecordEvent()

CUresult Realm::Cuda::cuCtxRecordEvent ( CUcontext  hctx,
CUevent  event 
)

◆ CUDA_DRIVER_APIS()

Realm::Cuda::CUDA_DRIVER_APIS ( DECL_FNPTR_EXTERN  )

◆ cuGetProcAddress()

CUresult Realm::Cuda::cuGetProcAddress ( const char *  ,
void **  ,
int  ,
int   
)

◆ get_cuda_device_id()

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

◆ get_cuda_device_uuid()

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

◆ get_task_cuda_stream()

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

◆ nvmlDeviceGetNvLinkRemoteDeviceType()

nvmlReturn_t Realm::Cuda::nvmlDeviceGetNvLinkRemoteDeviceType ( nvmlDevice_t  device,
unsigned int  link,
nvmlIntNvLinkDeviceType_t pNvLinkDeviceType 
)

◆ set_task_ctxsync_required()

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

Variable Documentation

◆ cuda_module_singleton

CudaModule* Realm::Cuda::cuda_module_singleton
extern

◆ cudart_hijack_active

bool Realm::Cuda::cudart_hijack_active
extern

◆ cudart_hijack_nongpu_sync

int Realm::Cuda::cudart_hijack_nongpu_sync
extern