Skip to content
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ USE_TSM ?= 0
USE_MPI ?= 0
USE_UCX ?= 0
USE_IBUC ?= 0
USE_ACCL_BAREX ?= 0
USE_ENFLAME ?= 0
USE_SUNRISE ?= 0
USE_PPU ?= 0
Expand Down Expand Up @@ -215,6 +216,20 @@ ifeq ($(USE_IBUC), 1)
NET_ADAPTOR_FLAG += -DUSE_IBUC
endif

# ACCL (accl::barex) transport for PPU + vsolar hosts lacking peer-mem/DMA-BUF.
# Devel package installs under /usr; select at runtime with FLAGCX_P2P_TRANSPORT=accl.
ifeq ($(USE_ACCL_BAREX), 1)
ACCL_BAREX_HOME ?= /usr
ACCL_BAREX_INCLUDE = $(ACCL_BAREX_HOME)/include
ACCL_BAREX_LIB = $(ACCL_BAREX_HOME)/lib
ACCL_BAREX_LINK = -laccl_barex
NET_ADAPTOR_FLAG += -DUSE_ACCL_BAREX -DCMAKE_INCLUDE=1
else
ACCL_BAREX_INCLUDE = .
ACCL_BAREX_LIB = .
ACCL_BAREX_LINK =
endif

ifeq ($(COMPILE_KERNEL), 1)
COMPILE_KERNEL_FLAG = -DCOMPILE_KERNEL
COMPILE_KERNEL_HOST_FLAG = -DCOMPILE_KERNEL_HOST
Expand Down Expand Up @@ -323,7 +338,7 @@ endif
$(LIBDIR)/$(TARGET): $(LIBOBJ) $(DEVOBJS)
@mkdir -p `dirname $@`
@echo "Linking $@"
@$(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
@$(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

# Copy public headers from flagcx/include/ into the build output tree so they
# sit next to the shared libraries (build/include + build/lib).
Expand All @@ -335,7 +350,7 @@ $(BUILD_INCDIR)/%.h: flagcx/include/%.h
$(OBJDIR)/%.o: %.cc
@mkdir -p `dirname $@`
@echo "Compiling $@"
@$(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
@$(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

ifeq ($(COMPILE_KERNEL), 1)
$(OBJDIR)/kernel_dlink.o: $(DEVOBJ)
Expand Down
8 changes: 8 additions & 0 deletions flagcx/adaptor/adaptor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ extern struct flagcxNetAdaptor flagcxNetIbuc;
#ifdef USE_UCX
extern struct flagcxNetAdaptor flagcxNetUcx;
#endif

#ifdef USE_ACCL_BAREX
extern struct flagcxNetAdaptor flagcxNetBarex;
#endif
extern struct flagcxNetAdaptor flagcxNetIbP2p;

// Unified network adaptor entry point
Expand All @@ -189,6 +193,10 @@ struct flagcxNetAdaptor *getUnifiedNetAdaptor(int netType) {
#elif USE_IBUC
// When IBUC is enabled, use IBUC instead of IBRC
return &flagcxNetIbuc;
#elif USE_ACCL_BAREX
// When ACCL barex is enabled (PPU + vsolar hosts), use it instead
// of IBRC; FLAGCX_BAREX_DISABLE=1 falls back to socket at runtime.
return &flagcxNetBarex;
#else
return &flagcxNetIb;
#endif
Expand Down
Loading
Loading