Skip to content

Commit c3de63d

Browse files
chencjcjchencjcj
authored andcommitted
Add IBUC network adaptor support (flagos-ai#265)
1 parent 19f7829 commit c3de63d

16 files changed

Lines changed: 2634 additions & 737 deletions

Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ USE_AMD ?= 0
1616
USE_DU ?= 0
1717
USE_MPI ?= 0
1818
USE_UCX ?= 0
19+
USE_IBUC ?= 0
1920

2021
# set to empty if not provided
2122
DEVICE_HOME ?=
@@ -224,6 +225,11 @@ else
224225
NET_ADAPTOR_FLAG =
225226
endif
226227

228+
# IBUC network adaptor configuration
229+
ifeq ($(USE_IBUC), 1)
230+
NET_ADAPTOR_FLAG += -DUSE_IBUC
231+
endif
232+
227233
LIBDIR := $(BUILDDIR)/lib
228234
OBJDIR := $(BUILDDIR)/obj
229235

@@ -276,6 +282,7 @@ print_var:
276282
@echo "UCX_HOME: $(UCX_HOME)"
277283
@echo "UCX_LIB: $(UCX_LIB)"
278284
@echo "UCX_INCLUDE: $(UCX_INCLUDE)"
285+
@echo "USE_IBUC: $(USE_IBUC)"
279286
@echo "NET_ADAPTOR_FLAG: $(NET_ADAPTOR_FLAG)"
280287

281288
$(LIBDIR)/$(TARGET): $(LIBOBJ)

flagcx/adaptor/adaptor.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ struct flagcxDeviceAdaptor *deviceAdaptor = &hipAdaptor;
124124
extern struct flagcxNetAdaptor flagcxNetSocket;
125125
extern struct flagcxNetAdaptor flagcxNetIb;
126126

127+
#ifdef USE_IBUC
128+
extern struct flagcxNetAdaptor flagcxNetIbuc;
129+
#endif
130+
127131
#ifdef USE_UCX
128132
extern struct flagcxNetAdaptor flagcxNetUcx;
129133
#endif
@@ -135,6 +139,9 @@ struct flagcxNetAdaptor *getUnifiedNetAdaptor(int netType) {
135139
#ifdef USE_UCX
136140
// When UCX is enabled, use UCX instead of IBRC
137141
return &flagcxNetUcx;
142+
#elif USE_IBUC
143+
// When IBUC is enabled, use IBUC instead of IBRC
144+
return &flagcxNetIbuc;
138145
#else
139146
return &flagcxNetIb;
140147
#endif

flagcx/adaptor/include/adaptor.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,11 @@ extern struct flagcxNetAdaptor *netAdaptor;
5050

5151
// Network type enumeration
5252
enum NetType {
53-
IBRC = 1, // InfiniBand RC (or UCX when USE_UCX=1)
54-
SOCKET = 2 // Socket
53+
IBRC = 1, // InfiniBand RC (or UCX when USE_UCX=1)
54+
SOCKET = 2, // Socket
55+
#ifdef USE_IBUC
56+
IBUC = 3 // InfiniBand UC
57+
#endif
5558
};
5659

5760
// Unified network adaptor function declarations

0 commit comments

Comments
 (0)