Statistiques
| Révision :

root / BLAS / xTRSV / Makefile

Historique | Voir | Annoter | Télécharger (3,5 ko)

1 251 equemene
# Makefile designed for Debian Buster
2 251 equemene
3 1 equemene
SOURCE=xTRSV.c
4 1 equemene
5 180 equemene
CC=gcc
6 180 equemene
FC=gfortran
7 1 equemene
CFLAGS=-Wall -O3
8 1 equemene
LDFLAGS=-lm
9 251 equemene
10 251 equemene
CUDAINC?=/usr/include
11 251 equemene
CUDALIB?=/usr/lib/x86_64-linux-gnu/
12 265 equemene
CUDASRC?=/usr/share/doc/nvidia-cuda-toolkit/examples/libcublas
13 1 equemene
THUNKING=fortran_thunking.c
14 1 equemene
CUDASRCINC=fortran_common.h
15 1 equemene
16 1 equemene
GSLINC=/usr/include/gsl
17 1 equemene
18 251 equemene
# OPENBLAS=/usr/lib/x86_64-linux-gnu
19 251 equemene
# ATLAS=/usr/lib/x86_64-linux-gnu
20 1 equemene
21 1 equemene
ACML=/opt/acml
22 1 equemene
ACMLINC=$(ACML)/gfortran64_mp/include
23 1 equemene
ACMLLIB=$(ACML)/gfortran64_mp/lib
24 1 equemene
25 251 equemene
#EXECUTABLE=cblas fblas gsl cublas thunking acml openblas
26 7 equemene
EXECUTABLE=cblas fblas gsl cublas thunking openblas
27 1 equemene
28 251 equemene
# FORMAT define the precision of Floating Point numbers
29 251 equemene
# FP32 for simple of 32 bits size
30 251 equemene
# FP64 for double of 64 bits size
31 251 equemene
#FORMAT=FP64
32 251 equemene
FORMAT=FP32
33 1 equemene
34 1 equemene
#DIRECTIVES=-D$(FORMAT) -DPRINT -DUNIT
35 1 equemene
#DIRECTIVES=-D$(FORMAT) -DUNIT -DRESULTS -DQUIET
36 180 equemene
#DIRECTIVES=-DQUIET -DUNIT
37 180 equemene
DIRECTIVES=-DRESULTS -DQUIET
38 1 equemene
39 1 equemene
all: $(EXECUTABLE)
40 1 equemene
41 1 equemene
cblas: $(SOURCE)
42 1 equemene
43 251 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFP32 -DCBLAS $(LDFLAGS) \
44 251 equemene
		$(SOURCE) -latlas -lcblas -o $(SOURCE:.c=)_SP_$@
45 1 equemene
46 251 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFP64 -DCBLAS $(LDFLAGS) \
47 251 equemene
		$(SOURCE) -latlas -lcblas -o $(SOURCE:.c=)_DP_$@
48 1 equemene
49 6 equemene
openblas: $(SOURCE)
50 6 equemene
51 251 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFP32 -DCBLAS $(LDFLAGS) \
52 251 equemene
		$(SOURCE) -lopenblas -lpthread -o $(SOURCE:.c=)_SP_$@
53 6 equemene
54 251 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFP64 -DCBLAS $(LDFLAGS) \
55 251 equemene
		$(SOURCE) -lopenblas -lpthread -o $(SOURCE:.c=)_DP_$@
56 6 equemene
57 1 equemene
acml: $(SOURCE)
58 1 equemene
59 251 equemene
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DFP32 -DACML $(LDFLAGS) \
60 1 equemene
		$(SOURCE) -L$(ACMLLIB) -lacml_mp -lacml_mv \
61 1 equemene
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_SP_$@
62 1 equemene
63 251 equemene
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DFP64 -DACML $(LDFLAGS) \
64 1 equemene
		$(SOURCE) -L$(ACMLLIB) -lacml_mp -lacml_mv \
65 1 equemene
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_DP_$@
66 1 equemene
67 1 equemene
fblas: $(SOURCE)
68 1 equemene
69 251 equemene
	# ATLAS version
70 251 equemene
	# $(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DFP32 -DFBLAS $(LDFLAGS) \
71 251 equemene
	#  	$(SOURCE) -latlas -lf77blas -o $(SOURCE:.c=)_SP_$@
72 1 equemene
73 251 equemene
	# $(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DFP64 -DFBLAS $(LDFLAGS) \
74 251 equemene
	#  	$(SOURCE) -latlas -lf77blas -o $(SOURCE:.c=)_DP_$@
75 1 equemene
76 251 equemene
	# OpenBLAS version
77 251 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFP32 -DFBLAS $(LDFLAGS) \
78 251 equemene
	  	$(SOURCE) -lopenblas -lpthread -o $(SOURCE:.c=)_SP_$@
79 1 equemene
80 251 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFP64 -DFBLAS $(LDFLAGS) \
81 251 equemene
	  	$(SOURCE) -lopenblas -lpthread -o $(SOURCE:.c=)_DP_$@
82 251 equemene
83 251 equemene
84 1 equemene
gsl: $(SOURCE)
85 1 equemene
86 251 equemene
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DFP32 -DGSL $(LDFLAGS) \
87 1 equemene
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_SP_$@
88 1 equemene
89 251 equemene
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DFP64 -DGSL $(LDFLAGS) \
90 1 equemene
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_DP_$@
91 1 equemene
92 1 equemene
93 1 equemene
cublas: $(SOURCE)
94 1 equemene
95 251 equemene
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DCUBLAS -DFP32 $(LDFLAGS) \
96 1 equemene
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_SP_$@
97 1 equemene
98 251 equemene
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DCUBLAS -DFP64 $(LDFLAGS) \
99 1 equemene
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_DP_$@
100 1 equemene
101 1 equemene
thunking: $(SOURCE)
102 1 equemene
103 1 equemene
# Copy of source for thunking CUBLAS approach
104 1 equemene
	cp $(CUDASRC)/$(THUNKING) $(CUDASRC)/$(THUNKING:.c=.h) \
105 1 equemene
		$(CUDASRC)/$(CUDASRCINC) .
106 1 equemene
107 7 equemene
	$(CC) -DCUBLAS_GFORTRAN -I$(CUDAINC) $(CFLAGS) -c $(THUNKING)
108 7 equemene
109 7 equemene
	$(CC) -DCUBLAS_GFORTRAN -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DTHUNKING \
110 251 equemene
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) -DFP32 \
111 1 equemene
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_SP_$@
112 1 equemene
113 7 equemene
	$(CC) -DCUBLAS_GFORTRAN -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DTHUNKING \
114 251 equemene
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) -DFP64 \
115 1 equemene
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_DP_$@
116 1 equemene
117 1 equemene
clean: $(SOURCE)
118 1 equemene
	find . -name "$(SOURCE:.c=)_*" -exec rm {} \;
119 1 equemene
	find . -name "$(THUNKING:.c=)*" -exec rm {} \;
120 1 equemene
	find . -name "*~" -exec rm {} \;
121 1 equemene
	find . -name "$(CUDASRCINC)" -exec rm {} \;