40#ifndef __ZDIVMULTIGPUMAPPER__ 
   41#define __ZDIVMULTIGPUMAPPER__ 
   47#define Z_SHADOW_BOTTOM 1 
   49#define MCLKR_MAX_NBUFFERS 2 
   93        void stage_in_real(
int gpu, 
void *dptr, 
void *hptr, 
unsigned int element_size);
 
  101        ZDivMultiGPUMapper(
int x, 
int y, 
int z, 
size_t, 
int, 
int, 
int, 
int* gl=NULL, 
bool pz=
false, 
int pages=1);
 
  118        void publish_state(
int gpu, 
int key, cudaStream_t top, cudaStream_t bot, 
void *dptr = NULL);
 
  120        virtual void schedule_send(
int gpu, 
void *dptr, 
int timestamp, 
int neighbor, cudaStream_t stream);
 
  121        virtual void schedule_recv(
int gpu, 
void *dptr, 
int timestamp, 
int neighbor, cudaStream_t stream);
 
  126        unsigned int* 
gettbuf(
int gpu, 
int key, 
int neighbor);
 
  127        unsigned int* 
getrbuf(
int gpu, 
int key, 
int neighbor);
 
 
#define MCLKR_MAX_NBUFFERS
Definition ZDivMPIGPUMapper.h:49
#define NUM_SHADOWS
Definition ZDivMultiGPUMapper.h:45
#define MCLKR_MAX_NBUFFERS
Definition ZDivMultiGPUMapper.h:49
MultiGPUMapper(dim3 ldim, size_t cellsize, int apron, int overlap, int num_gpus, int *devices, int pages)
int3 get_global_offset(int gpu)
ZDivMultiGPUMapper(dim3, size_t, int, int, int, int *gl=NULL, bool pz=false, int pages=1)
unsigned int * gettbuf(int gpu, int key, int neighbor)
void stage_in_real(int gpu, void *dptr, void *hptr, unsigned int element_size)
dim3 get_local_dim(int gpu)
virtual void schedule_recv(int gpu, void *dptr, int timestamp, int neighbor, cudaStream_t stream)
void stage_out(int gpu, void *hptr, void *dptr)
gpu_info * getinfo(int gpu)
size_t get_authority_offset(int gpu)
virtual void initialize_gpu(int gpu)
void refresh(int gpu, void *dptr, int key)
virtual void initialize()
bool determine_load_balance()
size_t get_local_size(int gpu)
void stage_in(int gpu, void *dptr, void *hptr)
void stage_out_real(int gpu, void *hptr, void *dptr)
dim3 get_global_dim(int gpu)
int alter_chunks(int gpu, int count)
size_t get_global_output_offset(int gpu)
unsigned int * getrbuf(int gpu, int key, int neighbor)
void stage_in_sites(int gpu, void *dptr, void *hptr)
virtual void schedule_send(int gpu, void *dptr, int timestamp, int neighbor, cudaStream_t stream)
ZDivMultiGPUMapper(int x, int y, int z, size_t, int, int, int, int *gl=NULL, bool pz=false, int pages=1)
ssize_t get_global_input_offset(int gpu)
size_t get_authority_size(int gpu)
int map_index_to_gpu(size_t index)
void publish_state(int gpu, int key, cudaStream_t top, cudaStream_t bot, void *dptr=NULL)
Definition ZDivMultiGPUMapper.h:58
neighbor_buffer * read_buffer[NUM_SHADOWS]
Definition ZDivMultiGPUMapper.h:72
int lb_max_chunks
Definition ZDivMultiGPUMapper.h:76
int lb_chunks
Definition ZDivMultiGPUMapper.h:75
int3 dependent_pos
Definition ZDivMultiGPUMapper.h:65
dim3 local_dim
Definition ZDivMultiGPUMapper.h:62
dim3 overlap_send[NUM_SHADOWS]
Definition ZDivMultiGPUMapper.h:69
dim3 overlap_dim
Definition ZDivMultiGPUMapper.h:68
int neighbor[NUM_SHADOWS]
Definition ZDivMultiGPUMapper.h:71
neighbor_buffer * write_buffer[NUM_SHADOWS]
Definition ZDivMultiGPUMapper.h:73
dim3 local_authority
Definition ZDivMultiGPUMapper.h:63
dim3 global_dim
Definition ZDivMultiGPUMapper.h:60
char * tmp_buffer[MCLKR_MAX_NBUFFERS]
Definition ZDivMultiGPUMapper.h:79
float lb_imbalance
Definition ZDivMultiGPUMapper.h:77
dim3 overlap_recv[NUM_SHADOWS]
Definition ZDivMultiGPUMapper.h:70
dim3 global_pos
Definition ZDivMultiGPUMapper.h:59
Definition ZDivMPIGPUMapper.h:53
size_t size
Definition ZDivMPIGPUMapper.h:55
char * buffer[MCLKR_MAX_NBUFFERS]
Definition ZDivMPIGPUMapper.h:54