|
prt_vsa_t * | prt_vsa_new (int num_threads, int num_devices, void *global_store, struct prt_mapping_s(*vdp_mapping)(int *, void *, int, int)) |
| Creates a new VSA. More...
|
|
void | prt_vsa_delete (prt_vsa_t *vsa) |
| Destroys a VSA. More...
|
|
void | prt_vsa_vdp_insert (prt_vsa_t *vsa, struct prt_vdp_s *vdp) |
| Inserts a VDP in a VSA. Destroys VDPs that do not belong to this node. Puts the VDP in the list of VDPs of the owner thread or device. Connects corresponding input and output channels of intra-node VDPs. Builds the list of channel connections to other nodes. For a device VDP, creates a CUDA stream with the cudaStreamNonBlocking flag. This indicates no synchronization with the default stream (stream 0). Stream 0 is not used anywere in PRT. More...
|
|
void | prt_vsa_vdp_merge_channels (prt_vsa_t *vsa, struct prt_vdp_s *vdp) |
| Connects corresponding input and output channels of intra-node VDPs. An input channel always overrides an output channel. This way the on/off switch of the input channel is preserved. More...
|
|
void | prt_vsa_vdp_track_tags (prt_vsa_t *vsa, struct prt_vdp_s *vdp) |
| Builds the list of channel connections to other nodes. More...
|
|
void | prt_vsa_channel_tags (prt_vsa_t *vsa) |
| Assigns channel tags. Builds the node-tag lookup. Destroys channel lists. More...
|
|
void | prt_vsa_channel_streams (prt_vsa_t *vsa) |
| Creates channel streams. More...
|
|
double | prt_vsa_run (prt_vsa_t *vsa) |
| Implements the VSA's production cycle. Launches worker threads. Sends the master thread in the proxy production cycle. Joins the worker threads. More...
|
|
void | prt_vsa_config_set (prt_vsa_t *vsa, enum prt_config_param_e param, enum prt_config_value_e value) |
|
void | prt_vsa_thread_warmup_func_set (prt_vsa_t *vsa, void(*func)()) |
| Sets a thread warmup function. If set, the thread warmup function is called by each thread right after launching and before threads are barriered and the timer is started. Allows for excluding the time for initialization procedures of libraries, such as loading of dynamic libraries, internal memory allocations, possibly time consuming pinned memory allocations, etc. A NULL function pointer can be passed to remove the thread warmup function. More...
|
|
void | prt_vsa_device_warmup_func_set (prt_vsa_t *vsa, void(*func)()) |
| Sets a device warmup function. If set, the device warmup function is called by each device right after launching and before devices are barriered and the timer is started. Allows for excluding the time for initialization procedures of libraries, such as loading of dynamic libraries, internal memory allocations, possibly time consuming pinned memory allocations, etc. A NULL function pointer can be passed to remove the device warmup function. More...
|
|
void | prt_vsa_devices_warmup (prt_vsa_t *vsa) |
| Calls the warmup function for all devices and synchronizes. More...
|
|
Virtual Systolic Array.
- Author
- Jakub Kurzak
PULSAR Runtime http://icl.utk.edu/pulsar/ Copyright (C) 2012-2015 University of Tennessee.
Definition in file prt_vsa.h.