-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
89 lines (72 loc) · 4.59 KB
/
Makefile
File metadata and controls
89 lines (72 loc) · 4.59 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#CFLAGS = -std=c++11 -Wall -Wextra -O3 -g # -g # too many errors with these: -fsanitize=address -fno-omit-frame-pointer # Changed to 14 for variable template
CFLAGS = -std=c++11 -Wall -Wextra -O3 # -g -fno-omit-frame-pointer # Changed to 14 for variable template
#CFLAGS = -std=c++11 -Wall -Wextra -O0 # -g # too many errors with these: -fsanitize=address -fno-omit-frame-pointer # Changed to 14 for variable template
CFLAGS+= -funroll-loops -march=native -mtune=native # -Wall -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -Wextra
#CFLAGS+= -funroll-loops -mtune=native # -Wall -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -Wextra
#CFLAGS+= -funroll-loops # -Wall -Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -Wextra
#LIBS = trunk/lib/sequential/libgraphblas.a -lnuma #-lgraphblas # ORDER EXTREMELY IMPORTANT
#LIBS = trunkARM/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
HEADERS = -Itrunk2/include/ # -Iweak-sync-aj/weak_sync/include/
# -I${MKLROOT}/include -fopenmp -I/software/intel/compilers_and_libraries_2018.2.199/linux/tbb/include/
#CXX = g++
CXX = g++
# SETTINGS: GNU compiler, Intel 64-arch, Static link, 32-bit integer, OpenMP threading, libgomp vs libiomp5 (INTEL)
# problem: if using seq version, we need to additionally link against libxsmm below (!)
# READ UP MORE: https://stackoverflow.com/questions/25986091/telling-gcc-to-not-link-libgomp-so-it-links-libiomp5-instead
#MKL_LIB=-Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group
MKL_LIB=
# MKL_LIB=-Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -fopenmp -liomp5
#MKL_LIB=-Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_gnu_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -fopenmp -lgomp
#MKL_LIB=-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl
# compiler options (from MKL link advisor):
#CFLAGS+= -m64
HEADERS+= -I$(IDIR) -I$(DEPDIR)/include -I${MKLROOT}/include
OPTIONS := test bench
EXECUTABLES = $(addprefix inference_,$(OPTIONS))
test_DDFLAGS :=
bench_DDFLAGS := -DBENCH
OBJ= inference_bench.o inference_test.o
#OMP_DYNAMIC=false
#MKL_DYNAMIC=false
#OMP_PROC_BIND=close
#OMP_NUM_THREADS=2
HOST=$(shell hostname)
ifeq ($(HOST), ubuntupawlowski)
#CFLAGS += -DHOMEDIR='"/media/Data/Filip-Pawlowski/graph-challenge/INPUTS/"' -- that is for laptop(!)
CFLAGS += -DHOMEDIR='"/home/filip/Filip-Pawlowski/graph-challenge/INPUTS/"' -DMACHINE_1
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
else ifeq ($(HOST), f80050752-HP-EliteBook-820-G2)
CFLAGS += -DHOMEDIR='"../../INPUTS/"' -DMACHINE_4
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
else ifeq ($(HOST), ZRC-P920-001)
CFLAGS += -DHOMEDIR='"/home/f80050752/GRAPH-CHALLENGE/INPUTS/"' -DMACHINE_3
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
else ifeq ($(HOST), headnode)
CFLAGS += -DHOMEDIR='"/home/f80050752/GRAPH-CHALLENGE/INPUTS/"' -DMACHINE_2
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
else ifneq (,$(filter $(HOST),ws01 ws02 ws03 ws04))
#else ifeq ($(HOST), srv01)
CFLAGS += -DHOMEDIR='"/home/fpawlowski/GraphChallengeDataset/"' -DMACHINE_2
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
else ifneq (,$(filter $(HOST),localhost.localdomain))
CFLAGS += -DHOMEDIR='"/home/filip/GraphChallengeDataset/"' -DMACHINE_2
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
else ifneq (,$(filter $(HOST),srv01 srv02 srv03 srv04 srv05 srv06 srv07 srv08 srv09 srv10))
# For ARM, we remove lpatoh:
CFLAGS += -DHOMEDIR='"/home/fpawlowski/GraphChallengeDataset/"' -DMACHINE_ARM
LIBS = trunk2/lib/sequential/libgraphblas.a -L. -I. -lm -ldl -lnuma
else
CFLAGS += -DHOMEDIR='"/home/filip/Pulpit/SparseInference/GraphChallengeDataset/"' -DMACHINE_2 -DMACHINE_MINE
LIBS = trunk2/lib/sequential/libgraphblas.a -lpatoh -L. -I. -lm -ldl -lnuma
endif
#CFLAGS += -DHOST='"$(HOST)"'
all : $(EXECUTABLES)
# Otherwise, Makefile removes intermediate targets (!)
inference_% : inference_%.o
$(CXX) -o $@ $^ weak-sync-aj/weak_sync/obj/weak_sync.perf.o $(MKL_LIB) -fopenmp -pthread $(LIBS)
#$(OBJ) : inference.cpp
inference_%.o : inference.cpp
$(CXX) $(CFLAGS) $($*_DDFLAGS) $(HEADERS) -c $< -o $@ -fopenmp
.SECONDARY: $(OBJ)
clean :
$(RM) $(EXECUTABLES) $(OBJ)