12 #include <ucp/api/ucp.h>
14 #include <ucxx/typedefs.h>
49 const decltype(
_memoryType) memoryType = UCS_MEMORY_TYPE_HOST,
63 std::shared_ptr<::ucxx::Buffer>
_buffer{
nullptr};
134 const decltype(
_length) length,
136 const decltype(
_rkey) rkey);
165 const decltype(
_length) length,
167 const decltype(
_rkey) rkey);
242 const decltype(
_length) length,
243 const decltype(
_tag) tag);
272 const decltype(
_length) length,
273 const decltype(
_tag) tag,
303 const decltype(
_length)& length,
304 const decltype(
_isCUDA)& isCUDA,
305 const decltype(
_tag) tag);
334 using RequestData = std::variant<std::monostate,
348 template <
class... Ts>
350 using Ts::operator()...;
352 template <
class... Ts>
356 RequestData getRequestData(T t)
358 return std::visit([](
auto arg) -> RequestData {
return arg; }, t);
Data for an Active Message receive.
Definition: request_data.h:61
AmReceive()
Constructor for Active Message-specific receive data.
std::shared_ptr<::ucxx::Buffer > _buffer
The AM received message buffer.
Definition: request_data.h:63
Data for an Active Message send.
Definition: request_data.h:28
const size_t _length
The length of the message.
Definition: request_data.h:31
const ucs_memory_type_t _memoryType
Memory type used on the operation.
Definition: request_data.h:32
AmSend(const decltype(_buffer) buffer, const decltype(_length) length, const decltype(_memoryType) memoryType=UCS_MEMORY_TYPE_HOST, const decltype(_receiverCallbackInfo) receiverCallbackInfo=std::nullopt)
Constructor for Active Message-specific send data.
const void * _buffer
The raw pointer where data to be sent is stored.
Definition: request_data.h:30
const std::optional< AmReceiverCallbackInfo > _receiverCallbackInfo
Owner name and unique identifier of the receiver callback.
Definition: request_data.h:33
Data for an endpoint close operation.
Definition: request_data.h:81
EndpointClose(const decltype(_force) force)
Constructor for endpoint close-specific data.
const bool _force
Whether to force endpoint closing.
Definition: request_data.h:83
Data for a flush operation.
Definition: request_data.h:101
Flush()
Constructor for flush-specific data.
Data for a memory receive.
Definition: request_data.h:147
void * _buffer
The raw pointer where received data should be stored.
Definition: request_data.h:149
const uint64_t _remoteAddr
Remote memory address to read from.
Definition: request_data.h:151
const size_t _length
The length of the message.
Definition: request_data.h:150
const ucp_rkey_h _rkey
UCX remote key associated with the remote memory address.
Definition: request_data.h:152
MemGet(decltype(_buffer) buffer, const decltype(_length) length, const decltype(_remoteAddr) remoteAddr, const decltype(_rkey) rkey)
Constructor for memory-specific data.
Data for a memory send.
Definition: request_data.h:116
const uint64_t _remoteAddr
Remote memory address to write to.
Definition: request_data.h:120
const size_t _length
The length of the message.
Definition: request_data.h:119
const void * _buffer
The raw pointer where data to be sent is stored.
Definition: request_data.h:118
const ucp_rkey_h _rkey
UCX remote key associated with the remote memory address.
Definition: request_data.h:121
MemPut(const decltype(_buffer) buffer, const decltype(_length) length, const decltype(_remoteAddr) remoteAddr, const decltype(_rkey) rkey)
Constructor for memory-specific data.
Data for an Stream receive.
Definition: request_data.h:202
StreamReceive(decltype(_buffer) buffer, const decltype(_length) length)
Constructor for stream-specific data.
const size_t _length
The expected messaged length.
Definition: request_data.h:205
void * _buffer
The raw pointer where received data should be stored.
Definition: request_data.h:204
size_t _lengthReceived
The actual received message length.
Definition: request_data.h:206
Data for a Stream send.
Definition: request_data.h:178
const size_t _length
The length of the message.
Definition: request_data.h:181
const void * _buffer
The raw pointer where data to be sent is stored.
Definition: request_data.h:180
StreamSend(const decltype(_buffer) buffer, const decltype(_length) length)
Constructor for stream-specific data.
Data for a multi-buffer Tag receive.
Definition: request_data.h:316
const ::ucxx::Tag _tag
Tag to match.
Definition: request_data.h:318
TagMultiReceive(const decltype(_tag) tag, const decltype(_tagMask) tagMask)
Constructor for receive multi-buffer tag-specific data.
const ::ucxx::TagMask _tagMask
Tag mask to use.
Definition: request_data.h:319
Data for a multi-buffer Tag send.
Definition: request_data.h:285
const ::ucxx::Tag _tag
Tag to match.
Definition: request_data.h:290
TagMultiSend(const decltype(_buffer)&buffer, const decltype(_length)&length, const decltype(_isCUDA)&isCUDA, const decltype(_tag) tag)
Constructor for send multi-buffer tag-specific data.
const std::vector< int > _isCUDA
Flags indicating whether the buffer is CUDA or not.
Definition: request_data.h:289
const std::vector< size_t > _length
Lengths of messages.
Definition: request_data.h:288
const std::vector< void * > _buffer
Raw pointers where data to be sent is stored.
Definition: request_data.h:287
Data for a Tag receive.
Definition: request_data.h:254
const ::ucxx::Tag _tag
Tag to match.
Definition: request_data.h:258
TagReceive(decltype(_buffer) buffer, const decltype(_length) length, const decltype(_tag) tag, const decltype(_tagMask) tagMask)
Constructor for tag-specific data.
void * _buffer
The raw pointer where received data should be stored.
Definition: request_data.h:256
const size_t _length
The length of the message.
Definition: request_data.h:257
const ::ucxx::TagMask _tagMask
Tag mask to use.
Definition: request_data.h:259
Definition: request_data.h:349