18#ifndef GASNETEX_WRAPPER_H
19#define GASNETEX_WRAPPER_H
24#ifndef GEX_NO_PROTOTYPES
25#include "gex_export.h"
45#define __GASNET_ERR_BASE 10000
46#define GEX_WRAPPER_OK 0
47#define GEX_WRAPPER_NOT_VALID -1
48#define GEX_WRAPPER_ERR_NOT_READY (__GASNET_ERR_BASE + 4)
49#define GEX_WRAPPER_EP_INVALID ((gex_ep_opaque_t)(uintptr_t)0)
50#define GEX_WRAPPER_MK_INVALID ((gex_mk_opaque_t)(uintptr_t)0)
51#define GEX_WRAPPER_SEGMENT_INVALID ((gex_segment_opaque_t)(uintptr_t)0)
52#define GEX_WRAPPER_EVENT_INVALID ((gex_event_opaque_t)(uintptr_t)0)
53#define GEX_WRAPPER_EVENT_NO_OP ((gex_event_opaque_t)(uintptr_t)1)
54#define GEX_WRAPPER_EVENT_NOW ((gex_event_opaque_t *)(uintptr_t)1)
55#define GEX_WRAPPER_EVENT_DEFER ((gex_event_opaque_t *)(uintptr_t)2)
56#define GEX_WRAPPER_EVENT_GROUP ((gex_event_opaque_t *)(uintptr_t)3)
57#define GEX_WRAPPER_AM_SRCDESC_NO_OP NULL
58#define GEX_WRAPPER_DT_U64 1 << 3
59#define GEX_WRAPPER_OP_ADD 1 << 3
60#define GEX_WRAPPER_EP_CAPABILITY_RMA (1U << 0)
61#define GEX_WRAPPER_MK_HOST ((gex_mk_opaque_t)(uintptr_t)1)
62#define GEX_WRAPPER_FLAG_IMMEDIATE (1U << 0)
63#define GEX_WRAPPER_FLAG_AM_PREPARE_LEAST_CLIENT (1U << 11)
64#define GEX_WRAPPER_FLAG_AM_PREPARE_LEAST_ALLOC (1U << 12)
66#define GEX_WRAPPER_CONDUIT_ARIES 0
67#define GEX_WRAPPER_CONDUIT_IBV 1
68#define GEX_WRAPPER_CONDUIT_MPI 2
69#define GEX_WRAPPER_CONDUIT_OFI 3
70#define GEX_WRAPPER_CONDUIT_SMP 4
71#define GEX_WRAPPER_CONDUIT_UCX 5
72#define GEX_WRAPPER_CONDUIT_UDP 6
97 const char *clientName,
134 const char *(*gex_error_name)(
int error);
136 const char *(*gex_error_desc)(
int error);
159 void *dest,
const void *
src,
size_t nbytes,
179 gex_dt_t dt,
size_t dt_sz,
size_t dt_cnt,
190 const void *hdr,
size_t hdr_bytes,
gex_flags_t flags);
198 const void *hdr,
size_t hdr_bytes,
const void *data,
204 size_t hdr_bytes,
const void *data,
size_t min_data_bytes,
size_t max_data_bytes,
208 const void *hdr,
size_t hdr_bytes,
size_t data_bytes);
216 const void *hdr,
size_t hdr_bytes,
const void *data,
225 const void *hdr,
size_t hdr_bytes,
234 const void *hdr,
size_t hdr_bytes, uintptr_t dest_addr,
240 const void *data,
size_t min_data_bytes,
size_t max_data_bytes,
254 const void *hdr,
size_t hdr_bytes);
256 const void *hdr,
size_t hdr_bytes,
const void *data,
259 const void *hdr,
size_t hdr_bytes,
const void *data,
264 uintptr_t src_ptr, uintptr_t tgt_ptr,
size_t payload_bytes);
266 gex_am_arg_t cksum,
const void *data,
size_t data_bytes,
280#ifndef GEX_NO_PROTOTYPES
bootstrap_handle_t * handle
Definition bootstrap.h:61
uint32_t gex_ep_capabilities_t
Definition gasnetex_wrapper.h:34
void * gex_tm_opaque_t
Definition gasnetex_wrapper.h:38
void * gex_event_opaque_t
Definition gasnetex_wrapper.h:42
int32_t gex_am_arg_t
Definition gasnetex_wrapper.h:33
uint16_t gex_ep_index_t
Definition gasnetex_wrapper.h:30
uint32_t gex_op_t
Definition gasnetex_wrapper.h:32
struct gex_wrapper_handle_s gex_wrapper_handle_t
Handle structure that contains the full API for the wrapper.
void * gex_am_src_desc_opaque_t
Definition gasnetex_wrapper.h:43
void * gex_addr_opaque_t
Definition gasnetex_wrapper.h:41
uint32_t gex_rank_t
Definition gasnetex_wrapper.h:29
uint32_t gex_dt_t
Definition gasnetex_wrapper.h:31
void * gex_mk_opaque_t
Definition gasnetex_wrapper.h:40
uint32_t gex_flags_t
Definition gasnetex_wrapper.h:28
void * gex_segment_opaque_t
Definition gasnetex_wrapper.h:39
void * gex_ep_opaque_t
Definition gasnetex_wrapper.h:37
int GEX_EXPORT realm_gex_wrapper_init(gex_wrapper_handle_t *handle)
struct gex_callback_handle_s gex_callback_handle_t
void * gex_client_opaque_t
Definition gasnetex_wrapper.h:36
int(* gex_wrapper_init_pfn)(gex_wrapper_handle_t *handle)
Definition gasnetex_wrapper.h:275
Definition gasnetex_wrapper.h:251
void * gex_internal
Definition gasnetex_wrapper.h:252
void(* handle_completion_reply)(void *gex_internal, gex_rank_t srcrank, const gex_am_arg_t *args, size_t nargs)
Definition gasnetex_wrapper.h:268
gex_am_arg_t(* handle_short)(void *gex_internal, gex_rank_t srcrank, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes)
Definition gasnetex_wrapper.h:253
size_t(* handle_batch)(void *gex_internal, gex_rank_t srcrank, gex_am_arg_t arg0, gex_am_arg_t cksum, const void *data, size_t data_bytes, gex_am_arg_t *comps)
Definition gasnetex_wrapper.h:265
gex_am_arg_t(* handle_long)(void *gex_internal, gex_rank_t srcrank, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, const void *data, size_t data_bytes)
Definition gasnetex_wrapper.h:258
void(* handle_reverse_get)(void *gex_internal, gex_rank_t srcrank, gex_ep_index_t src_ep_index, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, uintptr_t src_ptr, uintptr_t tgt_ptr, size_t payload_bytes)
Definition gasnetex_wrapper.h:261
gex_am_arg_t(* handle_medium)(void *gex_internal, gex_rank_t srcrank, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, const void *data, size_t data_bytes)
Definition gasnetex_wrapper.h:255
Handle structure that contains the full API for the wrapper.
Definition gasnetex_wrapper.h:77
bool GEX_HAVE_MK_CLASS_HIP
Definition gasnetex_wrapper.h:88
void(* gex_coll_bcast)(gex_tm_opaque_t tm, gex_rank_t root, void *dst, const void *src, size_t nbytes, gex_flags_t flags)
Definition gasnetex_wrapper.h:166
size_t(* gex_am_src_desc_size)(gex_am_src_desc_opaque_t sd)
Definition gasnetex_wrapper.h:144
size_t(* max_request_long)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, size_t hdr_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:210
void(* gex_coll_barrier)(gex_tm_opaque_t tm, gex_flags_t flags)
Definition gasnetex_wrapper.h:164
bool GEX_NATIVE_NP_ALLOC_REQ_MEDIUM
Definition gasnetex_wrapper.h:86
int(* gex_mk_create_cuda)(gex_mk_opaque_t *memkind_p, gex_client_opaque_t client, int device, gex_flags_t flags)
Definition gasnetex_wrapper.h:115
int(* gex_ep_create)(gex_ep_opaque_t *ep_p, gex_ep_index_t *ep_index, gex_client_opaque_t client, gex_ep_capabilities_t capabilities, gex_flags_t flags, const void *val)
Definition gasnetex_wrapper.h:104
int GEX_RELEASE
Definition gasnetex_wrapper.h:83
void(* gex_query_shared_peers)(gex_rank_t *num_shared_ranks, gex_rank_t **shared_ranks)
Definition gasnetex_wrapper.h:128
int(* gex_segment_create)(gex_segment_opaque_t *segment_p, gex_client_opaque_t client, gex_addr_opaque_t address, uintptr_t length, gex_mk_opaque_t kind, gex_flags_t flags)
Definition gasnetex_wrapper.h:121
int(* gex_am_poll)(void)
Definition gasnetex_wrapper.h:148
int(* send_request_put_header)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, uintptr_t dest_addr, size_t payload_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:232
void(* gex_coll_allgatherv)(gex_tm_opaque_t tm, const void *val_in, void *vals_out, int *bytes, int *offsets, gex_flags_t flags)
Definition gasnetex_wrapper.h:175
uint16_t max_eps
Definition gasnetex_wrapper.h:80
gex_am_src_desc_opaque_t(* prepare_request_medium)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, size_t hdr_bytes, const void *data, size_t min_data_bytes, size_t max_data_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:202
size_t(* max_request_medium)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, size_t hdr_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:192
int(* send_completion_reply)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, const gex_am_arg_t *args, size_t nargs, gex_flags_t flags)
Definition gasnetex_wrapper.h:184
int(* gex_mk_create_hip)(gex_mk_opaque_t *memkind_p, gex_client_opaque_t client, int device, gex_flags_t flags)
Definition gasnetex_wrapper.h:118
int GEX_API
Definition gasnetex_wrapper.h:84
gex_event_opaque_t(* gex_rma_iput)(gex_ep_opaque_t local_ep, gex_ep_index_t remote_ep_index, gex_rank_t rank, void *dest, const void *src, size_t nbytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:157
void(* gex_nbi_wait_ec_am)(gex_flags_t flags)
Definition gasnetex_wrapper.h:130
bool GEX_RMA_HONORS_IMMEDIATE_FLAG
Definition gasnetex_wrapper.h:85
bool GEX_HAVE_MK_CLASS_CUDA_UVA
Definition gasnetex_wrapper.h:87
gex_event_opaque_t(* gex_coll_ireduce)(gex_tm_opaque_t tm, void *dst, const void *src, gex_dt_t dt, size_t dt_sz, size_t dt_cnt, gex_op_t op, gex_flags_t flags)
Definition gasnetex_wrapper.h:178
gex_am_src_desc_opaque_t(* prepare_request_batch)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, const void *data, size_t min_data_bytes, size_t max_data_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:238
void(* commit_request_batch)(gex_am_src_desc_opaque_t srcdesc, gex_am_arg_t arg0, gex_am_arg_t cksum, size_t data_bytes)
Definition gasnetex_wrapper.h:243
int(* send_request_rget)(gex_tm_opaque_t prim_tm, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, gex_ep_index_t payload_ep_index, const void *payload, size_t payload_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags, uintptr_t dest_addr)
Definition gasnetex_wrapper.h:223
int(* gex_event_test)(gex_event_opaque_t event)
Definition gasnetex_wrapper.h:142
int(* gex_client_init)(gex_client_opaque_t *client_p, gex_ep_opaque_t *ep_p, gex_tm_opaque_t *tm_p, gex_rank_t *rank, gex_rank_t *size, const char *clientName, int *argc, char ***argv, gex_flags_t flags, const void *val)
Definition gasnetex_wrapper.h:92
size_t handle_size
Definition gasnetex_wrapper.h:79
int(* send_request_long)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, const void *data, size_t data_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags, uintptr_t dest_addr)
Definition gasnetex_wrapper.h:214
int(* send_request_medium)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, const void *data, size_t data_bytes, gex_event_opaque_t *lc_opt, gex_flags_t flags)
Definition gasnetex_wrapper.h:196
int(* send_request_short)(gex_ep_opaque_t src_ep, gex_rank_t tgt_rank, gex_ep_index_t tgt_ep_index, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, gex_flags_t flags)
Definition gasnetex_wrapper.h:188
void(* commit_request_medium)(gex_am_src_desc_opaque_t srcdesc, gex_am_arg_t arg0, const void *hdr, size_t hdr_bytes, size_t data_bytes)
Definition gasnetex_wrapper.h:207
void(* gex_coll_allgather)(gex_tm_opaque_t tm, const void *val_in, void *vals_out, size_t bytes, gex_flags_t flags)
Definition gasnetex_wrapper.h:172
void(* gex_ep_bind_segment)(gex_ep_opaque_t ep, gex_segment_opaque_t segment, gex_flags_t flags)
Definition gasnetex_wrapper.h:125
int conduit
Definition gasnetex_wrapper.h:81
gex_event_opaque_t(* gex_rma_iget)(gex_ep_opaque_t local_ep, gex_ep_index_t remote_ep_index, void *dest, gex_rank_t rank, void *src, size_t nbytes, gex_flags_t flags)
Definition gasnetex_wrapper.h:152
size_t AM_LUBRequestMedium
Definition gasnetex_wrapper.h:82
int(* gex_ep_publish_bound_segment)(gex_tm_opaque_t tm, gex_ep_opaque_t *eps, size_t num_eps, gex_flags_t flags)
Definition gasnetex_wrapper.h:138
void(* gex_coll_gather)(gex_tm_opaque_t tm, gex_rank_t root, const void *val_in, void *vals_out, size_t bytes, gex_flags_t flags)
Definition gasnetex_wrapper.h:169
NodeID src
Definition ucp_internal.h:1