-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
98 lines (71 loc) · 3.23 KB
/
Makefile
File metadata and controls
98 lines (71 loc) · 3.23 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
88
89
90
91
92
93
94
95
96
97
98
# Compilers
CC=gcc
CLANG=clang
ICC=icc
# Flags
FLAGS=-lm
FLAG_OMP=-fopenmp
FLAG_ZEN3=#-march=znver3 #Uncomment if Ryzen3 is going to be used
# Vectorization reports
ICC_REP=-D NOFUNCCALL -qopt-report=1 -qopt-report-phase=vec
GCC_REP=-fopt-info-vec
AOCC_REP=-Rpass=.*
# Directories
DIR=.
DIR_src=${DIR}/src
DIR_bin=${DIR}/bin
# Complementary files
SRC=${DIR_src}/kdtree.c ${DIR_src}/search.c ${DIR_src}/interpolation.c ${DIR_src}/location.c ${DIR_src}/rk4.c ${DIR_src}/read_python_files.c
# Include header files
INC=./include
# Compile lists
GCC_OBJS=gcc_O3_compute_flowmap gcc_Of_compute_flowmap
ICC_OBJS=icc_O3_compute_flowmap icc_Of_compute_flowmap
AOCC_OBJS=aocc_O3_compute_flowmap aocc_Of_compute_flowmap
OBJS=${GCC_OBJS} ${AOCC_OBJS} #${ICC_OBJS} #Uncomment ICC_OBJS to also compile the icc version
# Make lists
all: ${OBJS}
gcc: ${GCC_OBJS}
icc: ${ICC_OBJS}
aocc: ${AOCC_OBJS}
# -------------------------- #
# ---------- GCC ----------- #
# -------------------------- #
gcc_O3_compute_flowmap:
${CC} ${FLAG_OMP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/gcc_O3_compute_flowmap ${FLAGS} -O3
gcc_Of_compute_flowmap:
${CC} ${FLAG_OMP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/gcc_Of_compute_flowmap ${FLAGS} -Ofast
# -------------------------- #
# ---------- ICC ----------- #
# -------------------------- #
icc_O3_compute_flowmap:
${ICC} ${FLAG_OMP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/icc_O3_compute_flowmap ${FLAGS} -O3
icc_Of_compute_flowmap:
${ICC} ${FLAG_OMP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/icc_Of_compute_flowmap ${FLAGS} -Ofast
# -------------------------- #
# ---------- AOCC----------- #
# -------------------------- #
aocc_O3_compute_flowmap:
${CLANG} ${FLAG_OMP} ${FLAG_ZEN3} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/aocc_O3_compute_flowmap_z3 ${FLAGS} -O3
aocc_Of_compute_flowmap:
${CLANG} ${FLAG_OMP} ${FLAG_ZEN3} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/aocc_Of_compute_flowmap_z3 ${FLAGS} -Ofast
# -------------------------- #
# ----- Vectorization ------ #
# -------------------------- #
gcc_O3_compute_flowmap_vect:
${CC} ${FLAG_OMP} ${GCC_REP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/gcc_O3_compute_flowmap ${FLAGS} -O3
gcc_Of_compute_flowmap_vect:
${CC} ${FLAG_OMP} ${GCC_REP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/gcc_Of_compute_flowmap ${FLAGS} -Ofast
icc_O3_compute_flowmap_vect:
${ICC} ${FLAG_OMP} ${ICC_REP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/icc_O3_compute_flowmap ${FLAGS} -O3
icc_Of_compute_flowmap_vect:
${ICC} ${FLAG_OMP} ${ICC_REP} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/icc_Of_compute_flowmap ${FLAGS} -Ofast
aocc_O3_compute_flowmap_vect:
${CLANG} ${FLAG_OMP} ${AOCC_REP} ${FLAG_ZEN3} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/aocc_O3_compute_flowmap_z3 ${FLAGS} -O3
aocc_Of_compute_flowmap_vect:
${CLANG} ${FLAG_OMP} ${AOCC_REP} ${FLAG_ZEN3} ${DIR_src}/compute_flowmap.c ${SRC} -I ${INC} -o ${DIR_bin}/aocc_Of_compute_flowmap_z3 ${FLAGS} -Ofast
# -------------------------- #
# ---------- Clean---------- #
# -------------------------- #
clean:
cd ${DIR_bin} && rm ${OBJS} && cd ..