Skip to content

Commit f02915a

Browse files
authored
[PAL] Add PPU support (flagos-ai#512)
1 parent 41c7e3a commit f02915a

7 files changed

Lines changed: 1112 additions & 0 deletions

File tree

Makefile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ USE_UCX ?= 0
2121
USE_IBUC ?= 0
2222
USE_ENFLAME ?= 0
2323
USE_SUNRISE ?= 0
24+
USE_PPU ?= 0
2425
COMPILE_KERNEL ?= 0
2526

2627
# set to empty if not provided
@@ -55,6 +56,8 @@ ifeq ($(strip $(DEVICE_HOME)),)
5556
DEVICE_HOME = /opt/tops/
5657
else ifeq ($(USE_SUNRISE), 1)
5758
DEVICE_HOME = /usr/local/tangrt
59+
else ifeq ($(USE_PPU), 1)
60+
DEVICE_HOME = /usr/local/cuda
5861
else
5962
DEVICE_HOME = /usr/local/cuda
6063
endif
@@ -85,6 +88,8 @@ ifeq ($(strip $(CCL_HOME)),)
8588
CCL_HOME = /usr
8689
else ifeq ($(USE_SUNRISE), 1)
8790
CCL_HOME = /usr/local/pccl
91+
else ifeq ($(USE_PPU), 1)
92+
CCL_HOME = /usr/local/cuda
8893
else
8994
CCL_HOME = /usr/local/nccl/build
9095
endif
@@ -243,6 +248,14 @@ else ifeq ($(USE_SUNRISE), 1)
243248
CCL_INCLUDE = $(CCL_HOME)/include
244249
CCL_LINK = -lpccl
245250
ADAPTOR_FLAG = -DUSE_SUNRISE_ADAPTOR
251+
else ifeq ($(USE_PPU), 1)
252+
DEVICE_LIB = $(DEVICE_HOME)/lib64
253+
DEVICE_INCLUDE = $(DEVICE_HOME)/include
254+
DEVICE_LINK = -lcudart -lcuda
255+
CCL_LIB = $(CCL_HOME)/lib64
256+
CCL_INCLUDE = $(CCL_HOME)/include
257+
CCL_LINK = -lnccl
258+
ADAPTOR_FLAG = -DUSE_PPU_ADAPTOR
246259
else
247260
DEVICE_LIB = $(DEVICE_HOME)/lib64
248261
DEVICE_INCLUDE = $(DEVICE_HOME)/include $(DEVICE_HOME)/include/cccl

flagcx/adaptor/adaptor.cc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,19 @@ struct flagcxDeviceAdaptor *deviceAdaptor = &topsAdaptor;
151151
struct flagcxCCLAdaptor *cclAdaptors[NCCLADAPTORS] = {&bootstrapAdaptor,
152152
&pcclAdaptor};
153153
struct flagcxDeviceAdaptor *deviceAdaptor = &ptpuAdaptor;
154+
155+
#elif USE_PPU_ADAPTOR
156+
#ifdef USE_BOOTSTRAP_ADAPTOR
157+
struct flagcxCCLAdaptor *cclAdaptors[NCCLADAPTORS] = {&bootstrapAdaptor,
158+
&ppuncclAdaptor};
159+
#elif USE_GLOO_ADAPTOR
160+
struct flagcxCCLAdaptor *cclAdaptors[NCCLADAPTORS] = {&glooAdaptor,
161+
&ppuncclAdaptor};
162+
#elif USE_MPI_ADAPTOR
163+
struct flagcxCCLAdaptor *cclAdaptors[NCCLADAPTORS] = {&mpiAdaptor,
164+
&ppuncclAdaptor};
165+
#endif
166+
struct flagcxDeviceAdaptor *deviceAdaptor = &ppucudaAdaptor;
154167
#endif
155168

156169
// External adaptor declarations

0 commit comments

Comments
 (0)