UCX 1.20
Unified Communication X
Loading...
Searching...
No Matches
ucp_compat.h
1/*
2 * Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2017. ALL RIGHTS RESERVED.
3 *
4 * See file LICENSE for terms.
5 */
6
7
8#ifndef UCP_COMPAT_H_
9#define UCP_COMPAT_H_
10
11
12#include <ucp/api/ucp_def.h>
13#include <ucs/sys/compiler_def.h>
14
15BEGIN_C_DECLS
16
28
29
34int ucp_request_is_completed(void *request);
35
36
41void ucp_request_release(void *request);
42
43
49
50
56
57
68
69
84
85
118 void **rkey_buffer_p, size_t *size_p);
119
120
139void ucp_rkey_buffer_release(void *rkey_buffer);
140
141
147
190
191
239ucs_status_t ucp_put(ucp_ep_h ep, const void *buffer, size_t length,
240 uint64_t remote_addr, ucp_rkey_h rkey);
241
242
266ucs_status_t ucp_get(ucp_ep_h ep, void *buffer, size_t length,
267 uint64_t remote_addr, ucp_rkey_h rkey);
268
269
297 uint64_t remote_addr, ucp_rkey_h rkey);
298
299
327 uint64_t remote_addr, ucp_rkey_h rkey);
328
329
360ucs_status_t ucp_atomic_fadd32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr,
361 ucp_rkey_h rkey, uint32_t *result);
362
363
394ucs_status_t ucp_atomic_fadd64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr,
395 ucp_rkey_h rkey, uint64_t *result);
396
397
427ucs_status_t ucp_atomic_swap32(ucp_ep_h ep, uint32_t swap, uint64_t remote_addr,
428 ucp_rkey_h rkey, uint32_t *result);
429
430
460ucs_status_t ucp_atomic_swap64(ucp_ep_h ep, uint64_t swap, uint64_t remote_addr,
461 ucp_rkey_h rkey, uint64_t *result);
462
463
494ucs_status_t ucp_atomic_cswap32(ucp_ep_h ep, uint32_t compare, uint32_t swap,
495 uint64_t remote_addr, ucp_rkey_h rkey,
496 uint32_t *result);
497
498
529ucs_status_t ucp_atomic_cswap64(ucp_ep_h ep, uint64_t compare, uint64_t swap,
530 uint64_t remote_addr, ucp_rkey_h rkey,
531 uint64_t *result);
532
533
568
569
591 ucp_address_t **address_p,
592 size_t *address_length_p);
593
594
624
625
655
656
685 ucp_am_callback_t cb, void *arg,
686 uint32_t flags);
687
688
715 const void *buffer, size_t count,
716 ucp_datatype_t datatype,
717 ucp_send_callback_t cb, unsigned flags);
718
719
760ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
762 unsigned flags);
763
764
808ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count,
809 ucp_datatype_t datatype,
811 size_t *length, unsigned flags);
812
813
856ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
857 ucp_datatype_t datatype, ucp_tag_t tag,
859
860
942ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count,
943 ucp_datatype_t datatype, ucp_tag_t tag, void *req);
944
945
979ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count,
980 ucp_datatype_t datatype, ucp_tag_t tag,
982
983
1024ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count,
1025 ucp_datatype_t datatype, ucp_tag_t tag,
1026 ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb);
1027
1028
1061ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count,
1062 ucp_datatype_t datatype, ucp_tag_t tag,
1063 ucp_tag_t tag_mask, void *req);
1064
1065
1102 size_t count, ucp_datatype_t datatype,
1103 ucp_tag_message_h message,
1105
1106
1137ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length,
1138 uint64_t remote_addr, ucp_rkey_h rkey);
1139
1140
1186ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length,
1187 uint64_t remote_addr, ucp_rkey_h rkey,
1189
1190
1220ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length,
1221 uint64_t remote_addr, ucp_rkey_h rkey);
1222
1223
1268ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length,
1269 uint64_t remote_addr, ucp_rkey_h rkey,
1271
1272
1290
1291
1317 size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey);
1318
1319
1339
1340
1392 uint64_t value, void *result, size_t op_size,
1393 uint64_t remote_addr, ucp_rkey_h rkey,
1395
1396
1430
1431
1458
1459
1460END_C_DECLS
1461
1462#endif
void(* ucp_tag_recv_callback_t)(void *request, ucs_status_t status, ucp_tag_recv_info_t *info)
Completion callback for non-blocking tag receives.
Definition ucp_def.h:493
ucs_status_t ucp_atomic_fadd32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
Blocking atomic fetch and add operation for 32 bit integers.
ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Non-blocking remote memory put operation.
ucs_status_t ucp_atomic_swap32(ucp_ep_h ep, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
Blocking atomic swap operation for 32 bit values.
int ucp_request_is_completed(void *request)
ucs_status_ptr_t ucp_atomic_fetch_nb(ucp_ep_h ep, ucp_atomic_fetch_op_t opcode, uint64_t value, void *result, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Post an atomic fetch operation.
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition ucp_def.h:257
ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, void *req)
Non-blocking tagged-receive operation.
ucs_status_t ucp_atomic_cswap32(ucp_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
Blocking atomic conditional swap (cswap) operation for 32 bit values.
void(* ucp_stream_recv_callback_t)(void *request, ucs_status_t status, size_t length)
Completion callback for non-blocking stream oriented receives.
Definition ucp_def.h:448
struct ucp_recv_desc * ucp_tag_message_h
UCP Message descriptor.
Definition ucp_def.h:268
ucs_status_t ucp_atomic_fadd64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
Blocking atomic fetch and add operation for 64 bit integers.
ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
Non-blocking implicit remote memory put operation.
ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Non-blocking remote memory get operation.
ucs_status_t ucp_atomic_post(ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey)
Post an atomic memory operation.
ucs_status_t ucp_put(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
Blocking remote memory put operation.
void * ucp_request_alloc(ucp_worker_h worker)
ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
Non-blocking stream send operation.
ucs_status_ptr_t ucp_am_send_nb(ucp_ep_h ep, uint16_t id, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
Send Active Message.
ucs_status_t ucp_atomic_add32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey)
Blocking atomic add operation for 32 bit integers.
ucs_status_t ucp_atomic_swap64(ucp_ep_h ep, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
Blocking atomic swap operation for 64 bit values.
ucs_status_t ucp_atomic_add64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey)
Blocking atomic add operation for 64 bit integers.
void(* ucp_send_callback_t)(void *request, ucs_status_t status)
Completion callback for non-blocking sends.
Definition ucp_def.h:319
ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
Non-blocking tagged-send operations.
ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
Non-blocking synchronous tagged-send operation.
ucp_atomic_fetch_op_t
Atomic operation requested for ucp_atomic_fetch.
Definition ucp_compat.h:1330
ucs_status_ptr_t ucp_tag_msg_recv_nb(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_message_h message, ucp_tag_recv_callback_t cb)
Non-blocking receive operation for a probed message.
ucp_atomic_post_op_t
Atomic operation requested for ucp_atomic_post.
Definition ucp_compat.h:1283
ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, void *req)
Non-blocking tagged-send operations with user provided request.
ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count, ucp_datatype_t datatype, ucp_stream_recv_callback_t cb, size_t *length, unsigned flags)
Non-blocking stream receive operation of structured data into a user-supplied buffer.
ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
Non-blocking implicit remote memory get operation.
uint64_t ucp_datatype_t
UCP Datatype Identifier.
Definition ucp_def.h:278
ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb)
Non-blocking tagged-receive operation.
ucs_status_t ucp_get(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
Blocking remote memory get operation.
ucs_status_t ucp_atomic_cswap64(ucp_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
Blocking atomic conditional swap (cswap) operation for 64 bit values.
@ UCP_ATOMIC_FETCH_OP_FAND
Definition ucp_compat.h:1334
@ UCP_ATOMIC_FETCH_OP_LAST
Definition ucp_compat.h:1337
@ UCP_ATOMIC_FETCH_OP_FOR
Definition ucp_compat.h:1335
@ UCP_ATOMIC_FETCH_OP_FXOR
Definition ucp_compat.h:1336
@ UCP_ATOMIC_FETCH_OP_SWAP
Definition ucp_compat.h:1332
@ UCP_ATOMIC_FETCH_OP_CSWAP
Definition ucp_compat.h:1333
@ UCP_ATOMIC_FETCH_OP_FADD
Definition ucp_compat.h:1331
@ UCP_ATOMIC_POST_OP_AND
Definition ucp_compat.h:1285
@ UCP_ATOMIC_POST_OP_LAST
Definition ucp_compat.h:1288
@ UCP_ATOMIC_POST_OP_XOR
Definition ucp_compat.h:1287
@ UCP_ATOMIC_POST_OP_ADD
Definition ucp_compat.h:1284
@ UCP_ATOMIC_POST_OP_OR
Definition ucp_compat.h:1286
struct ucp_context * ucp_context_h
UCP Application Context.
Definition ucp_def.h:60
UCP receive information descriptor.
Definition ucp.h:1719
ucs_status_ptr_t ucp_ep_modify_nb(ucp_ep_h ep, const ucp_ep_params_t *params)
Modify endpoint parameters.
ucs_status_t ucp_ep_flush(ucp_ep_h ep)
ucs_status_ptr_t ucp_disconnect_nb(ucp_ep_h ep)
ucs_status_t ucp_request_test(void *request, ucp_tag_recv_info_t *info)
ucp_ep_close_mode
Close UCP endpoint modes.
Definition ucp_compat.h:1440
ucs_status_ptr_t ucp_ep_flush_nb(ucp_ep_h ep, unsigned flags, ucp_send_callback_t cb)
Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
struct ucp_ep * ucp_ep_h
UCP Endpoint.
Definition ucp_def.h:92
ucs_status_ptr_t ucp_ep_close_nb(ucp_ep_h ep, unsigned mode)
Non-blocking endpoint closure.
void ucp_request_release(void *request)
void ucp_ep_destroy(ucp_ep_h ep)
ucs_status_t(* ucp_am_callback_t)(void *arg, void *data, size_t length, ucp_ep_h reply_ep, unsigned flags)
Callback to process incoming Active Message.
Definition ucp_def.h:613
@ UCP_EP_CLOSE_MODE_FLUSH
Definition ucp_compat.h:1454
@ UCP_EP_CLOSE_MODE_FORCE
Definition ucp_compat.h:1441
Tuning parameters for the UCP endpoint.
Definition ucp_def.h:683
void ucp_rkey_buffer_release(void *rkey_buffer)
Release packed remote key buffer.
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition ucp_def.h:167
ucs_status_t ucp_rkey_pack(ucp_context_h context, ucp_mem_h memh, void **rkey_buffer_p, size_t *size_p)
Pack memory region remote access key.
struct ucp_rkey * ucp_rkey_h
UCP Remote memory handle.
Definition ucp_def.h:152
void * arg
Definition ucp_compat.h:25
ucp_listener_accept_callback_t cb
Definition ucp_compat.h:24
ucs_status_t ucp_worker_get_address(ucp_worker_h worker, ucp_address_t **address_p, size_t *address_length_p)
Get the address of the worker object.
struct ucp_worker * ucp_worker_h
UCP Worker.
Definition ucp_def.h:246
struct ucp_listener_accept_handler ucp_listener_accept_handler_t
struct ucp_address ucp_address_t
UCP worker address.
Definition ucp_def.h:112
void(* ucp_listener_accept_callback_t)(ucp_ep_h ep, void *arg)
A callback for accepting client/server connections on a listener ucp_listener_h.
Definition ucp_def.h:390
ucs_status_t ucp_worker_set_am_handler(ucp_worker_h worker, uint16_t id, ucp_am_callback_t cb, void *arg, uint32_t flags)
Add user defined callback for Active Message.
ucs_status_ptr_t ucp_worker_flush_nb(ucp_worker_h worker, unsigned flags, ucp_send_callback_t cb)
Flush outstanding AMO and RMA operations on the worker.
ucs_status_t ucp_worker_flush(ucp_worker_h worker)
Flush outstanding AMO and RMA operations on the worker.
Definition ucp_compat.h:23
ucs_status_t
Status codes.
Definition status.h:45
void * ucs_status_ptr_t
Status pointer.
Definition status.h:106