-
Notifications
You must be signed in to change notification settings - Fork 41
One side put #303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
One side put #303
Conversation
- 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.
| struct flagcxIbSendCommDev { | ||
| struct flagcxIbNetCommDevBase base; | ||
| struct ibv_mr *fifoMr; | ||
| struct ibv_mr *putSignalScratchpadMr; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we reuse fifoMr?
flagcx/adaptor/net/ibrc_adaptor.cc
Outdated
|
|
||
| // Structure to store handle info for allgather | ||
| struct flagcxIbGlobalHandleInfo { | ||
| uintptr_t *base_vas; |
There was a problem hiding this comment.
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, |
There was a problem hiding this comment.
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" | |||
There was a problem hiding this comment.
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.
No description provided.