UCX  1.18
Unified Communication X
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 
15 BEGIN_C_DECLS
16 
25  void *arg;
28 
29 
34 int ucp_request_is_completed(void *request);
35 
36 
41 void ucp_request_release(void *request);
42 
43 
48 void ucp_ep_destroy(ucp_ep_h ep);
49 
50 
56 
57 
72 
73 
106  void **rkey_buffer_p, size_t *size_p);
107 
108 
127 void ucp_rkey_buffer_release(void *rkey_buffer);
128 
129 
135 
178 
179 
227 ucs_status_t ucp_put(ucp_ep_h ep, const void *buffer, size_t length,
228  uint64_t remote_addr, ucp_rkey_h rkey);
229 
230 
254 ucs_status_t ucp_get(ucp_ep_h ep, void *buffer, size_t length,
255  uint64_t remote_addr, ucp_rkey_h rkey);
256 
257 
284 ucs_status_t ucp_atomic_add32(ucp_ep_h ep, uint32_t add,
285  uint64_t remote_addr, ucp_rkey_h rkey);
286 
287 
314 ucs_status_t ucp_atomic_add64(ucp_ep_h ep, uint64_t add,
315  uint64_t remote_addr, ucp_rkey_h rkey);
316 
317 
348 ucs_status_t ucp_atomic_fadd32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr,
349  ucp_rkey_h rkey, uint32_t *result);
350 
351 
382 ucs_status_t ucp_atomic_fadd64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr,
383  ucp_rkey_h rkey, uint64_t *result);
384 
385 
415 ucs_status_t ucp_atomic_swap32(ucp_ep_h ep, uint32_t swap, uint64_t remote_addr,
416  ucp_rkey_h rkey, uint32_t *result);
417 
418 
448 ucs_status_t ucp_atomic_swap64(ucp_ep_h ep, uint64_t swap, uint64_t remote_addr,
449  ucp_rkey_h rkey, uint64_t *result);
450 
451 
482 ucs_status_t ucp_atomic_cswap32(ucp_ep_h ep, uint32_t compare, uint32_t swap,
483  uint64_t remote_addr, ucp_rkey_h rkey,
484  uint32_t *result);
485 
486 
517 ucs_status_t ucp_atomic_cswap64(ucp_ep_h ep, uint64_t compare, uint64_t swap,
518  uint64_t remote_addr, ucp_rkey_h rkey,
519  uint64_t *result);
520 
521 
556 
557 
579  ucp_address_t **address_p,
580  size_t *address_length_p);
581 
582 
611 ucs_status_ptr_t ucp_ep_close_nb(ucp_ep_h ep, unsigned mode);
612 
613 
641 ucs_status_ptr_t ucp_ep_flush_nb(ucp_ep_h ep, unsigned flags,
643 
644 
673  ucp_am_callback_t cb, void *arg,
674  uint32_t flags);
675 
676 
703  const void *buffer, size_t count,
704  ucp_datatype_t datatype,
705  ucp_send_callback_t cb, unsigned flags);
706 
707 
748 ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
749  ucp_datatype_t datatype, ucp_send_callback_t cb,
750  unsigned flags);
751 
752 
796 ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count,
797  ucp_datatype_t datatype,
799  size_t *length, unsigned flags);
800 
801 
844 ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
845  ucp_datatype_t datatype, ucp_tag_t tag,
847 
848 
930 ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count,
931  ucp_datatype_t datatype, ucp_tag_t tag, void *req);
932 
933 
967 ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count,
968  ucp_datatype_t datatype, ucp_tag_t tag,
970 
971 
1012 ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count,
1013  ucp_datatype_t datatype, ucp_tag_t tag,
1014  ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb);
1015 
1016 
1049 ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count,
1050  ucp_datatype_t datatype, ucp_tag_t tag,
1051  ucp_tag_t tag_mask, void *req);
1052 
1053 
1090  size_t count, ucp_datatype_t datatype,
1091  ucp_tag_message_h message,
1093 
1094 
1125 ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length,
1126  uint64_t remote_addr, ucp_rkey_h rkey);
1127 
1128 
1174 ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length,
1175  uint64_t remote_addr, ucp_rkey_h rkey,
1176  ucp_send_callback_t cb);
1177 
1178 
1208 ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length,
1209  uint64_t remote_addr, ucp_rkey_h rkey);
1210 
1211 
1256 ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length,
1257  uint64_t remote_addr, ucp_rkey_h rkey,
1258  ucp_send_callback_t cb);
1259 
1260 
1271 typedef enum {
1278 
1279 
1304 ucs_status_t ucp_atomic_post(ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value,
1305  size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey);
1306 
1307 
1318 typedef enum {
1327 
1328 
1380  uint64_t value, void *result, size_t op_size,
1381  uint64_t remote_addr, ucp_rkey_h rkey,
1382  ucp_send_callback_t cb);
1383 
1384 
1416 ucs_status_ptr_t ucp_worker_flush_nb(ucp_worker_h worker, unsigned flags,
1417  ucp_send_callback_t cb);
1418 
1419 
1445 };
1446 
1447 
1448 END_C_DECLS
1449 
1450 #endif
Tuning parameters for the UCP endpoint.
Definition: ucp_def.h:683
ucs_status_ptr_t ucp_ep_modify_nb(ucp_ep_h ep, const ucp_ep_params_t *params)
Modify endpoint parameters.
void ucp_rkey_buffer_release(void *rkey_buffer)
Release packed remote key buffer.
UCP receive information descriptor.
Definition: ucp.h:1699
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition: ucp_def.h:167
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_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.
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
uint64_t ucp_datatype_t
UCP Datatype Identifier.
Definition: ucp_def.h:278
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
Definition: ucp_compat.h:1275
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.
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.
struct ucp_context * ucp_context_h
UCP Application Context.
Definition: ucp_def.h:60
Definition: ucp_compat.h:1429
Definition: ucp_compat.h:1319
ucs_status_t ucp_request_test(void *request, ucp_tag_recv_info_t *info)
int ucp_request_is_completed(void *request)
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.
Definition: ucp_compat.h:1324
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.
ucp_atomic_fetch_op_t
Atomic operation requested for ucp_atomic_fetch.
Definition: ucp_compat.h:1318
Definition: ucp_compat.h:1320
Definition: ucp_compat.h:1274
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.
Definition: ucp_compat.h:23
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 * arg
Definition: ucp_compat.h:25
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_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
Status codes.
Definition: status.h:45
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.
struct ucp_address ucp_address_t
UCP worker address.
Definition: ucp_def.h:112
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.
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_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_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.
ucs_status_t ucp_ep_flush(ucp_ep_h ep)
void ucp_request_release(void *request)
ucp_atomic_post_op_t
Atomic operation requested for ucp_atomic_post.
Definition: ucp_compat.h:1271
ucs_status_ptr_t ucp_disconnect_nb(ucp_ep_h ep)
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.
struct ucp_recv_desc * ucp_tag_message_h
UCP Message descriptor.
Definition: ucp_def.h:268
ucp_ep_close_mode
Close UCP endpoint modes.
Definition: ucp_compat.h:1428
ucp_listener_accept_callback_t cb
Definition: ucp_compat.h:24
void ucp_ep_destroy(ucp_ep_h ep)
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_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.
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_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.
Definition: ucp_compat.h:1273
Definition: ucp_compat.h:1322
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.
Definition: ucp_compat.h:1272
void * ucs_status_ptr_t
Status pointer.
Definition: status.h:106
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition: ucp_def.h:257
Definition: ucp_compat.h:1276
Definition: ucp_compat.h:1323
Definition: ucp_compat.h:1321
struct ucp_worker * ucp_worker_h
UCP Worker.
Definition: ucp_def.h:246
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_ptr_t ucp_ep_close_nb(ucp_ep_h ep, unsigned mode)
Non-blocking endpoint closure.
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_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_rkey_pack(ucp_context_h context, ucp_mem_h memh, void **rkey_buffer_p, size_t *size_p)
Pack memory region remote access key.
ucs_status_t ucp_worker_flush(ucp_worker_h worker)
Flush outstanding AMO and RMA operations on the worker.
struct ucp_ep * ucp_ep_h
UCP Endpoint.
Definition: ucp_def.h:92
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.
Definition: ucp_compat.h:1325
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.
Definition: ucp_compat.h:1442
struct ucp_listener_accept_handler ucp_listener_accept_handler_t
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.
struct ucp_rkey * ucp_rkey_h
UCP Remote memory handle.
Definition: ucp_def.h:152
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
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_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_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_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.