20#ifndef REALM_CUDART_HIJACK_H
21#define REALM_CUDART_HIJACK_H
24#include <cuda_runtime.h>
30#include <unordered_map>
56 const unsigned long long *
data;
73 const char *_device_fun);
89 const char *_device_name,
bool _external,
int _size,
90 bool _constant,
bool _global,
bool _managed);
128 std::unordered_map<const FatBin *, RegisteredModule>
modules;
129 std::unordered_map<const void *, RegisteredVariable>
variables;
130 std::unordered_map<const void *, RegisteredFunction>
functions;
Definition cuda_internal.h:392
Definition cudart_hijack.h:95
static void register_variable(const RegisteredVariable &var)
void register_function_under_lock(RegisteredFunction &func, GPU *gpu)
void load_module_under_lock(RegisteredModule &mod, GPU *gpu)
~GlobalRegistrations(void)
std::set< GPU * > active_gpus
Definition cudart_hijack.h:127
static CUfunc_st * lookup_function(const void *func, GPU *gpu)
std::unordered_map< const void *, RegisteredVariable > variables
Definition cudart_hijack.h:129
void register_variable_under_lock(RegisteredVariable &var, GPU *gpu)
static void unregister_fat_binary(const FatBin *fatbin)
GlobalRegistrations(void)
static void register_function(const RegisteredFunction &func)
RWLock rwlock
Definition cudart_hijack.h:126
static GlobalRegistrations & get_global_registrations(void)
static void remove_gpu_context(GPU *gpu)
std::unordered_map< const void *, RegisteredFunction > functions
Definition cudart_hijack.h:130
std::unordered_map< const FatBin *, RegisteredModule > modules
Definition cudart_hijack.h:128
static void register_fat_binary(const FatBin *fatbin)
static uintptr_t lookup_variable(const void *var, GPU *gpu)
static void add_gpu_context(GPU *gpu)
bool cudart_hijack_active
int cudart_hijack_nongpu_sync
Definition activemsg.h:38
Definition cudart_hijack.h:53
void * filename_or_fatbins
Definition cudart_hijack.h:57
const unsigned long long * data
Definition cudart_hijack.h:56
int version
Definition cudart_hijack.h:55
int magic
Definition cudart_hijack.h:54
Definition cudart_hijack.h:65
RegisteredFunction(const FatBin *_fat_bin, const void *_host_fun, const char *_device_fun)
std::vector< CUfunc_st * > gpu_functions
Definition cudart_hijack.h:69
const char * device_fun
Definition cudart_hijack.h:68
RegisteredFunction()=default
const void * host_fun
Definition cudart_hijack.h:67
const FatBin * fat_bin
Definition cudart_hijack.h:66
Definition cudart_hijack.h:60
std::vector< CUmod_st * > gpu_modules
Definition cudart_hijack.h:62
const FatBin * fat_bin
Definition cudart_hijack.h:61
Definition cudart_hijack.h:76
RegisteredVariable(const FatBin *_fat_bin, const void *_host_var, const char *_device_name, bool _external, int _size, bool _constant, bool _global, bool _managed)
const char * device_name
Definition cudart_hijack.h:79
int size
Definition cudart_hijack.h:81
std::vector< uintptr_t > gpu_addresses
Definition cudart_hijack.h:85
bool managed
Definition cudart_hijack.h:84
bool global
Definition cudart_hijack.h:83
const FatBin * fat_bin
Definition cudart_hijack.h:77
RegisteredVariable()=default
bool external
Definition cudart_hijack.h:80
bool constant
Definition cudart_hijack.h:82
const void * host_var
Definition cudart_hijack.h:78