Skip to content

Conversation

@liuhe-spec
Copy link
Collaborator

No description provided.

- Introduced new functions: regBuffer, put, putSignal, waitValue, and deregBuffer in the flagcxNetAdaptor structure for one-sided operations.
- Updated flagcxIbSendComm structure to include putSignalScratchpad.
- Enhanced ibrc_adaptor.cc with implementations for the new one-sided functions.
- Updated ib_common.h to define a new request type for put operations.
- Adjusted other adaptors to accommodate the new one-sided extensions.
- Added 'test_put.cpp' to implement a benchmark for one-sided communication.
- Updated Makefile to include 'test-put' target for building the new test.
- Enhanced clean target to remove 'test_put' binary.
@CLAassistant
Copy link

CLAassistant commented Nov 17, 2025

CLA assistant check
All committers have signed the CLA.

struct flagcxIbSendCommDev {
struct flagcxIbNetCommDevBase base;
struct ibv_mr *fifoMr;
struct ibv_mr *putSignalScratchpadMr;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we reuse fifoMr?


// Structure to store handle info for allgather
struct flagcxIbGlobalHandleInfo {
uintptr_t *base_vas;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

base_vas -> baseVas

flagcxResult_t (*put)(void *sendComm, uint64_t srcOff, uint64_t dstOff,
size_t size, int srcRank, int dstRank, void **gHandles,
void **request);
flagcxResult_t (*putSignal)(void *sendComm, uint64_t dstOff, int tag,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

putSignal -> signal?

@@ -0,0 +1,347 @@
#include "flagcx.h"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to define regMr and deregMr in netAdaptor? How about we reuse flagcxCommRegister/Deregister and define a new funtion to retrieve global handles? Check flagcx/core/reg_pool.h/cc

- Moved the implementation of buffer registration and deregistration logic from flagcxIbRegBuffer and flagcxIbDeregBuffer
- Updated the test_put benchmark to utilize the new structure for handling memory regions and keys.
- Adjusted the net adaptor structure to remove unused function pointers for one-sided operations in various adaptors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants