UCX 1.17
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
72
73
106 void **rkey_buffer_p, size_t *size_p);
107
108
127void ucp_rkey_buffer_release(void *rkey_buffer);
128
129
135
178
179
227ucs_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
254ucs_status_t ucp_get(ucp_ep_h ep, void *buffer, size_t length,
255 uint64_t remote_addr, ucp_rkey_h rkey);
256
257
285 uint64_t remote_addr, ucp_rkey_h rkey);
286
287
315 uint64_t remote_addr, ucp_rkey_h rkey);
316
317
348ucs_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
382ucs_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
415ucs_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
448ucs_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
482ucs_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
517ucs_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
612
613
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
748ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
750 unsigned flags);
751
752
796ucs_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
844ucs_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
930ucs_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
967ucs_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
1012ucs_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
1049ucs_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
1125ucs_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
1174ucs_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,
1177
1178
1208ucs_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
1256ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length,
1257 uint64_t remote_addr, ucp_rkey_h rkey,
1259
1260
1278
1279
1305 size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey);
1306
1307
1327
1328
1380 uint64_t value, void *result, size_t op_size,
1381 uint64_t remote_addr, ucp_rkey_h rkey,
1383
1384
1418
1419
1446
1447
1448END_C_DECLS
1449
1450#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.
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:1318
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:1271
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:1322
@ UCP_ATOMIC_FETCH_OP_LAST
Definition ucp_compat.h:1325
@ UCP_ATOMIC_FETCH_OP_FOR
Definition ucp_compat.h:1323
@ UCP_ATOMIC_FETCH_OP_FXOR
Definition ucp_compat.h:1324
@ UCP_ATOMIC_FETCH_OP_SWAP
Definition ucp_compat.h:1320
@ UCP_ATOMIC_FETCH_OP_CSWAP
Definition ucp_compat.h:1321
@ UCP_ATOMIC_FETCH_OP_FADD
Definition ucp_compat.h:1319
@ UCP_ATOMIC_POST_OP_AND
Definition ucp_compat.h:1273
@ UCP_ATOMIC_POST_OP_LAST
Definition ucp_compat.h:1276
@ UCP_ATOMIC_POST_OP_XOR
Definition ucp_compat.h:1275
@ UCP_ATOMIC_POST_OP_ADD
Definition ucp_compat.h:1272
@ UCP_ATOMIC_POST_OP_OR
Definition ucp_compat.h:1274
struct ucp_context * ucp_context_h
UCP Application Context.
Definition ucp_def.h:60
UCP receive information descriptor.
Definition ucp.h:1693
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:1428
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:1442
@ UCP_EP_CLOSE_MODE_FORCE
Definition ucp_compat.h:1429
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