PULSAR
2.0.0
Parallel Ultra-Light Systolic Array Runtime
Main Page
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Typedefs
Enumerations
Macros
Groups
prt_packet.h
Go to the documentation of this file.
1
11
#ifndef PRT_PACKET_H
12
#define PRT_PACKET_H
13
14
#include "
prt.h
"
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
20
struct
prt_vdp_s
;
21
struct
prt_channel_s
;
22
struct
gpu_malloc_s
;
23
31
typedef
struct
prt_packet_s
{
32
void
*data;
// Pointer to the data.
33
size_t
size;
// Data size in bytes.
34
volatile
int
num_refs;
// Number of active references.
35
prt_location_t
location;
// Packet location.
36
int
device_rank;
// Device number.
37
struct
gpu_malloc_s
*devmem;
// Device memory allocator.
38
}
prt_packet_t
;
39
40
prt_packet_t
*
prt_packet_new_host
(
size_t
size,
void
*data);
41
prt_packet_t
*
prt_packet_new_device
(
42
size_t
size,
void
*data,
struct
prt_vdp_s
*vdp);
43
void
prt_packet_resize_host
(
prt_packet_t
*packet,
size_t
size);
44
void
prt_packet_release_host
(
prt_packet_t
*packet);
45
void
prt_packet_release_device
(
prt_packet_t
*packet);
46
47
void
prt_packet_host_to_device
(
48
prt_packet_t
*src_packet,
struct
prt_channel_s
*channel);
49
void
prt_packet_device_to_host
(
50
prt_packet_t
*src_packet,
struct
prt_channel_s
*channel);
51
void
prt_packet_device_to_device
(
52
prt_packet_t
*src_packet,
struct
prt_channel_s
*channel);
53
void
prt_packet_device_to_device_direct
(
54
prt_packet_t
*src_packet,
struct
prt_channel_s
*channel);
55
void
prt_packet_device_mpi_to_host
(
56
prt_packet_t
*src_packet,
struct
prt_channel_s
*channel,
int
agent);
57
58
#ifdef __cplusplus
59
}
60
#endif
61
62
#endif
/* PRT_PACKET_H */
prt_packet.h
Generated on Thu Nov 20 2014 18:12:00 for PULSAR by
1.8.4