Skip to content

Commit a46d0d8

Browse files
ymmyysleoda1
andauthored
[PAL] Add barex transport adaptor (#526)
--------- Co-authored-by: leoda1 <liud33787@gmail.com>
1 parent 85d4c18 commit a46d0d8

8 files changed

Lines changed: 2883 additions & 4 deletions

File tree

Makefile

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ USE_TSM ?= 0
1919
USE_MPI ?= 0
2020
USE_UCX ?= 0
2121
USE_IBUC ?= 0
22+
USE_ACCL_BAREX ?= 0
2223
USE_ENFLAME ?= 0
2324
USE_SUNRISE ?= 0
2425
USE_PPU ?= 0
@@ -215,6 +216,20 @@ ifeq ($(USE_IBUC), 1)
215216
NET_ADAPTOR_FLAG += -DUSE_IBUC
216217
endif
217218

219+
# ACCL (accl::barex) transport for PPU + vsolar hosts lacking peer-mem/DMA-BUF.
220+
# Devel package installs under /usr; select at runtime with FLAGCX_P2P_TRANSPORT=accl.
221+
ifeq ($(USE_ACCL_BAREX), 1)
222+
ACCL_BAREX_HOME ?= /usr
223+
ACCL_BAREX_INCLUDE = $(ACCL_BAREX_HOME)/include
224+
ACCL_BAREX_LIB = $(ACCL_BAREX_HOME)/lib
225+
ACCL_BAREX_LINK = -laccl_barex
226+
NET_ADAPTOR_FLAG += -DUSE_ACCL_BAREX -DCMAKE_INCLUDE=1
227+
else
228+
ACCL_BAREX_INCLUDE = .
229+
ACCL_BAREX_LIB = .
230+
ACCL_BAREX_LINK =
231+
endif
232+
218233
ifeq ($(COMPILE_KERNEL), 1)
219234
COMPILE_KERNEL_FLAG = -DCOMPILE_KERNEL
220235
COMPILE_KERNEL_HOST_FLAG = -DCOMPILE_KERNEL_HOST
@@ -325,7 +340,7 @@ endif
325340
$(LIBDIR)/$(TARGET): $(LIBOBJ) $(DEVOBJS)
326341
@mkdir -p `dirname $@`
327342
@echo "Linking $@"
328-
@$(LINKER) $^ -o $@ -L$(CCL_LIB) -L$(DEVICE_LIB) -L$(HOST_CCL_LIB) -L$(UCX_LIB) -shared -fvisibility=default -Wl,--no-as-needed -Wl,-rpath,$(LIBDIR) -Wl,-rpath,$(CCL_LIB) -Wl,-rpath,$(HOST_CCL_LIB) -Wl,-rpath,$(UCX_LIB) -lpthread -lrt -ldl $(CCL_LINK) $(DEVICE_LINK) $(HOST_CCL_LINK) $(UCX_LINK) -g
343+
@$(LINKER) $^ -o $@ -L$(CCL_LIB) -L$(DEVICE_LIB) -L$(HOST_CCL_LIB) -L$(UCX_LIB) -L$(ACCL_BAREX_LIB) -shared -fvisibility=default -Wl,--no-as-needed -Wl,-rpath,$(LIBDIR) -Wl,-rpath,$(CCL_LIB) -Wl,-rpath,$(HOST_CCL_LIB) -Wl,-rpath,$(UCX_LIB) -Wl,-rpath,$(ACCL_BAREX_LIB) -lpthread -lrt -ldl $(CCL_LINK) $(DEVICE_LINK) $(HOST_CCL_LINK) $(UCX_LINK) $(ACCL_BAREX_LINK) -g
329344

330345
# Copy public headers from flagcx/include/ into the build output tree so they
331346
# sit next to the shared libraries (build/include + build/lib).
@@ -337,7 +352,7 @@ $(BUILD_INCDIR)/%.h: flagcx/include/%.h
337352
$(OBJDIR)/%.o: %.cc
338353
@mkdir -p `dirname $@`
339354
@echo "Compiling $@"
340-
@$(HOST_COMPILER) $< -o $@ $(foreach dir,$(INCLUDEDIR),-I$(dir)) -I$(CCL_INCLUDE) $(addprefix -I,$(DEVICE_INCLUDE)) -I$(HOST_CCL_INCLUDE) -I$(UCX_INCLUDE) $(ADAPTOR_FLAG) $(HOST_CCL_ADAPTOR_FLAG) $(NET_ADAPTOR_FLAG) $(COMPILE_KERNEL_HOST_FLAG) -c -fPIC -fvisibility=default -Wvla -Wno-unused-function -Wno-sign-compare -Wall -MMD -MP -g
355+
@$(HOST_COMPILER) $< -o $@ $(foreach dir,$(INCLUDEDIR),-I$(dir)) -I$(CCL_INCLUDE) $(addprefix -I,$(DEVICE_INCLUDE)) -I$(HOST_CCL_INCLUDE) -I$(UCX_INCLUDE) -I$(ACCL_BAREX_INCLUDE) $(ADAPTOR_FLAG) $(HOST_CCL_ADAPTOR_FLAG) $(NET_ADAPTOR_FLAG) $(COMPILE_KERNEL_HOST_FLAG) -c -fPIC -fvisibility=default -Wvla -Wno-unused-function -Wno-sign-compare -Wall -MMD -MP -g
341356

342357
ifeq ($(COMPILE_KERNEL), 1)
343358
$(OBJDIR)/kernel_dlink.o: $(DEVOBJ)

flagcx/adaptor/adaptor.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ extern struct flagcxNetAdaptor flagcxNetIbuc;
177177
#ifdef USE_UCX
178178
extern struct flagcxNetAdaptor flagcxNetUcx;
179179
#endif
180+
181+
#ifdef USE_ACCL_BAREX
182+
extern struct flagcxNetAdaptor flagcxNetBarex;
183+
#endif
180184
extern struct flagcxNetAdaptor flagcxNetIbP2p;
181185

182186
// Unified network adaptor entry point
@@ -189,6 +193,10 @@ struct flagcxNetAdaptor *getUnifiedNetAdaptor(int netType) {
189193
#elif USE_IBUC
190194
// When IBUC is enabled, use IBUC instead of IBRC
191195
return &flagcxNetIbuc;
196+
#elif USE_ACCL_BAREX
197+
// When ACCL barex is enabled (PPU + vsolar hosts), use it instead
198+
// of IBRC; FLAGCX_BAREX_DISABLE=1 falls back to socket at runtime.
199+
return &flagcxNetBarex;
192200
#else
193201
return &flagcxNetIb;
194202
#endif

0 commit comments

Comments
 (0)