#include "vud.h"
#include <stdint.h>
Go to the source code of this file.
|
| void | vud_broadcast_transfer (vud_rank *r, vud_mram_size sz, const uint64_t(*src)[sz], vud_mram_addr tgt) |
| | transfer the same buffer to all DPUs of one rank
|
| |
| void | vud_simple_transfer (vud_rank *r, vud_mram_size sz, const uint64_t *(*src)[64], vud_mram_addr tgt) |
| | transfer 64 possibly different buffers to the DPUs of one rank
|
| |
| void | vud_simple_gather (vud_rank *r, vud_mram_size sz, vud_mram_addr src, uint64_t *(*tgt)[64]) |
| | transfer words from all DPUs to the host
|
| |
| void | vud_broadcast_to (vud_rank *r, vud_mram_size sz, const uint64_t(*src)[sz], const char *symbol) |
| | broadcast data to some variable in MRAM
|
| |
| void | vud_transfer_to (vud_rank *r, vud_mram_size sz, const uint64_t *(*src)[64], const char *symbol) |
| | transfer per-DPU data to some variable in MRAM
|
| |
| void | vud_gather_from (vud_rank *r, vud_mram_size sz, const char *symbol, uint64_t *(*tgt)[64]) |
| | gather data per-DPU from some variable in MRAM
|
| |
◆ vud_mram_addr
◆ vud_mram_size
◆ vud_broadcast_to()
broadcast data to some variable in MRAM
NOTE: In hotloops, it may be desirable to call vud_get_symbol directly and cache the result, as these functions call readelf at each invocation.
- Parameters
-
| r | rank to broadcast data to |
| sz | amount of words (8-bytes each) to transfer |
| src | buffer holding data to transfer |
| symbol | name of the variable to transfer to - call vud_ime_load before |
◆ vud_broadcast_transfer()
transfer the same buffer to all DPUs of one rank
- Parameters
-
| r | rank to transfer buffer to |
| sz | amount of words (8-bytes each) to transfer |
| src | buffer holding data to transfer |
| tgt | mram address to copy buffer to |
◆ vud_gather_from()
gather data per-DPU from some variable in MRAM
- Parameters
-
| r | rank to gather data from |
| sz | amount of words (8-bytes each) to gather |
| symbol | variable in MRAM to gather data from |
| tgt | Buffer to write words to. |
◆ vud_simple_gather()
transfer words from all DPUs to the host
- Parameters
-
| r | rank to transfer bytes from |
| sz | amount of words (8-bytes each) to transfer |
| src | Address to read from, the same for all DPUs. |
| tgt | Buffer to write words to. |
◆ vud_simple_transfer()
transfer 64 possibly different buffers to the DPUs of one rank
- Parameters
-
| r | rank to transfer to |
| sz | amount of words (8-bytes each) to transfer |
| src | array of pointers to the 64 buffers |
| tgt | mram address to copy buffers to (same for all DPUs) |
◆ vud_transfer_to()
| void vud_transfer_to |
( |
vud_rank * |
r, |
|
|
vud_mram_size |
sz, |
|
|
const uint64_t *(*) |
src[64], |
|
|
const char * |
symbol |
|
) |
| |
transfer per-DPU data to some variable in MRAM
- Parameters
-
| r | rank to transfer data to |
| sz | amount of words (8-bytes each) to transfer |
| src | array of pointers to the 64 buffers |
| symbol | name of the variable to transfer to - call vud_ime_load before |