-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathMakefile
More file actions
53 lines (42 loc) · 1.38 KB
/
Makefile
File metadata and controls
53 lines (42 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
CUDA_HOME?=$(CODNA_PREFIX)
$(info $(CUDA_HOME))
BUILDDIR:=./build
NCCL_HOME:=./nccl
NCCL_BUILD_DIR?=$(NCCL_HOME)/build
NCCL_INC:=$(NCCL_HOME)/src/include
NCCL_HEADER:=$(NCCL_BUILD_DIR)/include
FL_SO:=libnccl-net-fuselink.so
NVCC:=$(CUDA_HOME)/bin/nvcc
CXX:=/usr/bin/g++
INC:=$(CUDA_CFLAGS) -I$(NCCL_INC) -I$(NCCL_HEADER) -I$(CONDA_PREFIX)/include -Isrc/
LIB_PATH:=-L/usr/lib/x86_64-linux-gnu -L$(NCCL_BUILD_DIR)/lib $(CUDA_LDFLAGS) -L$(CONDA_PREFIX)/lib
CFLAGS:=-fPIC -O2 -Wno-deprecated-gpu-targets
.PHONY: clean all test
monitor: src/monitor_main.cpp src/monitor.cpp
g++ $(INC) -o monitor src/monitor_main.cpp src/monitor.cpp -lpthread -libverbs -lrt
FLSRC:=src/plugin.cc \
src/fuselink.cc \
nccl/src/misc/ibvwrap.cc \
nccl/src/misc/socket.cc \
nccl/src/misc/cudawrap.cc \
nccl/src/misc/utils.cc \
nccl/src/misc/ibvsymbols.cc \
nccl/src/misc/param.cc \
nccl/src/debug.cc \
CUSRC:=src/cumem.cu
FLOBJS:=$(FLSRC:.cc=.o)
CUOBJS:=$(CUSRC:.cu=.o)
fl: $(BUILDDIR)/lib/$(FL_SO)
all: fl monitor
$(BUILDDIR)/lib/$(FL_SO): $(FLOBJS) $(CUOBJS)
mkdir -p $(BUILDDIR)/lib
$(NVCC) $(LIB_PATH) -shared -Xcompiler $(CFLAGS) -libverbs -lnccl -lcuda -o $(BUILDDIR)/lib/$(FL_SO) $(FLOBJS) $(CUOBJS)
%.o: %.cc
mkdir -p build/src
$(NVCC) $(INC) -O2 -c -Xcompiler $(CFLAGS) -o $@ $<
%.o: %.cu
mkdir -p build/src
$(NVCC) $(INC) -O2 -c -Xcompiler $(CFLAGS) -o $@ $<
clean:
rm -rf build
rm -f src/*.o