Lattice Microbes 2.5
This is for whole cell modeling
Loading...
Searching...
No Matches
MultiGPUMapper Class Referenceabstract

#include <MultiGPUMapper.h>

Inheritance diagram for MultiGPUMapper:
[legend]
Collaboration diagram for MultiGPUMapper:
[legend]

Public Member Functions

 MultiGPUMapper (dim3 ldim, size_t cellsize, int apron, int overlap, int num_gpus, int *devices, int pages)
virtual ~MultiGPUMapper ()
int get_num_gpus ()
bool use (int gpu)
int get_overlap ()
int get_apron ()
void set_affinity (int)
int get_affinity ()
dim3 get_lattice_dim ()
SegmentDescriptor_sgetSegmentDescriptor (int gpu)
size_t get_global_size ()
void record_execution_cost (int, int)
bool rebalance ()
bool numa_bind_thread (int)
virtual dim3 get_global_dim (int gpu)=0
virtual dim3 get_local_dim (int gpu)=0
virtual int3 get_global_offset (int gpu)=0
virtual size_t get_local_size (int gpu)=0
virtual size_t get_authority_size (int gpu)=0
virtual ssize_t get_global_input_offset (int gpu)=0
virtual size_t get_global_output_offset (int gpu)=0
virtual size_t get_authority_offset (int gpu)=0
virtual void stage_in (int gpu, void *dptr, void *hptr)=0
virtual void stage_in_sites (int gpu, void *dptr, void *hptr)=0
virtual void stage_out (int gpu, void *hptr, void *dptr)=0
virtual void publish_state (int gpu, int timestamp, cudaStream_t top, cudaStream_t bot, void *dptr=NULL)=0
virtual void refresh (int gpu, void *dptr, int timestamp)=0
virtual void schedule_send (int gpu, void *dptr, int timestamp, int neighbor, cudaStream_t stream)=0
virtual void schedule_recv (int gpu, void *dptr, int timestamp, int neighbor, cudaStream_t stream)=0
virtual int map_index_to_gpu (size_t index)=0
virtual void initialize_gpu (int gpu)
virtual bool determine_load_balance ()=0

Protected Member Functions

virtual void initialize ()=0
bool enable_peer_access (int src, int dst)
void build_descriptor (int gpu, dim3 ldim, int3 goffset, dim3 active, dim3 loffset)
void compute_balances ()

Protected Attributes

int num_gpus
int * device_id
dim3 lattice_dim
int overlap
size_t cellsize
pthread_key_t affinity
int apron
SegmentDescriptor_s ** descriptor
float * lb_weights
int * lb_cost
size_t * device_memory
int pagecount

Constructor & Destructor Documentation

◆ MultiGPUMapper()

MultiGPUMapper::MultiGPUMapper ( dim3 ldim,
size_t cellsize,
int apron,
int overlap,
int num_gpus,
int * devices,
int pages )

◆ ~MultiGPUMapper()

virtual MultiGPUMapper::~MultiGPUMapper ( )
virtual

Member Function Documentation

◆ build_descriptor()

void MultiGPUMapper::build_descriptor ( int gpu,
dim3 ldim,
int3 goffset,
dim3 active,
dim3 loffset )
protected

◆ compute_balances()

void MultiGPUMapper::compute_balances ( )
protected

◆ determine_load_balance()

virtual bool MultiGPUMapper::determine_load_balance ( )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ enable_peer_access()

bool MultiGPUMapper::enable_peer_access ( int src,
int dst )
protected

◆ get_affinity()

int MultiGPUMapper::get_affinity ( )

◆ get_apron()

int MultiGPUMapper::get_apron ( )

◆ get_authority_offset()

virtual size_t MultiGPUMapper::get_authority_offset ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_authority_size()

virtual size_t MultiGPUMapper::get_authority_size ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_global_dim()

virtual dim3 MultiGPUMapper::get_global_dim ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_global_input_offset()

virtual ssize_t MultiGPUMapper::get_global_input_offset ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_global_offset()

virtual int3 MultiGPUMapper::get_global_offset ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_global_output_offset()

virtual size_t MultiGPUMapper::get_global_output_offset ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_global_size()

size_t MultiGPUMapper::get_global_size ( )

◆ get_lattice_dim()

dim3 MultiGPUMapper::get_lattice_dim ( )

◆ get_local_dim()

virtual dim3 MultiGPUMapper::get_local_dim ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_local_size()

virtual size_t MultiGPUMapper::get_local_size ( int gpu)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ get_num_gpus()

int MultiGPUMapper::get_num_gpus ( )

◆ get_overlap()

int MultiGPUMapper::get_overlap ( )

◆ getSegmentDescriptor()

SegmentDescriptor_s * MultiGPUMapper::getSegmentDescriptor ( int gpu)

◆ initialize()

virtual void MultiGPUMapper::initialize ( )
protectedpure virtual

Implemented in ZDivMultiGPUMapper.

◆ initialize_gpu()

virtual void MultiGPUMapper::initialize_gpu ( int gpu)
virtual

Reimplemented in ZDivMultiGPUMapper.

◆ map_index_to_gpu()

virtual int MultiGPUMapper::map_index_to_gpu ( size_t index)
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ numa_bind_thread()

bool MultiGPUMapper::numa_bind_thread ( int )

◆ publish_state()

virtual void MultiGPUMapper::publish_state ( int gpu,
int timestamp,
cudaStream_t top,
cudaStream_t bot,
void * dptr = NULL )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ rebalance()

bool MultiGPUMapper::rebalance ( )

◆ record_execution_cost()

void MultiGPUMapper::record_execution_cost ( int ,
int  )

◆ refresh()

virtual void MultiGPUMapper::refresh ( int gpu,
void * dptr,
int timestamp )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ schedule_recv()

virtual void MultiGPUMapper::schedule_recv ( int gpu,
void * dptr,
int timestamp,
int neighbor,
cudaStream_t stream )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ schedule_send()

virtual void MultiGPUMapper::schedule_send ( int gpu,
void * dptr,
int timestamp,
int neighbor,
cudaStream_t stream )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ set_affinity()

void MultiGPUMapper::set_affinity ( int )

◆ stage_in()

virtual void MultiGPUMapper::stage_in ( int gpu,
void * dptr,
void * hptr )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ stage_in_sites()

virtual void MultiGPUMapper::stage_in_sites ( int gpu,
void * dptr,
void * hptr )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ stage_out()

virtual void MultiGPUMapper::stage_out ( int gpu,
void * hptr,
void * dptr )
pure virtual

Implemented in ZDivMultiGPUMapper.

◆ use()

bool MultiGPUMapper::use ( int gpu)

Member Data Documentation

◆ affinity

pthread_key_t MultiGPUMapper::affinity
protected

◆ apron

int MultiGPUMapper::apron
protected

◆ cellsize

size_t MultiGPUMapper::cellsize
protected

◆ descriptor

SegmentDescriptor_s** MultiGPUMapper::descriptor
protected

◆ device_id

int* MultiGPUMapper::device_id
protected

◆ device_memory

size_t* MultiGPUMapper::device_memory
protected

◆ lattice_dim

dim3 MultiGPUMapper::lattice_dim
protected

◆ lb_cost

int* MultiGPUMapper::lb_cost
protected

◆ lb_weights

float* MultiGPUMapper::lb_weights
protected

◆ num_gpus

int MultiGPUMapper::num_gpus
protected

◆ overlap

int MultiGPUMapper::overlap
protected

◆ pagecount

int MultiGPUMapper::pagecount
protected

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