Statistiques
| Révision :

root / BLAS / xGEMM / Makefile @ 177

Historique | Voir | Annoter | Télécharger (4,19 ko)

1 1 equemene
SOURCE=xGEMM.c
2 1 equemene
3 146 equemene
CC=gcc
4 146 equemene
FC=gfortran
5 53 equemene
CFLAGS=-Wall -O3 -ffast-math
6 1 equemene
LDFLAGS=-lm
7 43 equemene
CUDASRC=/usr/share/doc/nvidia-cuda-doc/examples/
8 1 equemene
THUNKING=fortran_thunking.c
9 1 equemene
CUDASRCINC=fortran_common.h
10 43 equemene
CUDAINC=/usr/include
11 43 equemene
CUDALIB=/usr/lib/x86_64-linux-gnu/
12 146 equemene
CLBLASINC=/usr/include
13 146 equemene
CLBLASLIB=/usr/lib
14 54 equemene
# CLBLASINC=/opt/clBLAS/src
15 54 equemene
# CLBLASLIB=/opt/clBLAS/src/library/
16 1 equemene
17 1 equemene
PATCHTHUNKING=patch_thunking.h
18 1 equemene
19 1 equemene
GSLINC=/usr/include/gsl
20 1 equemene
21 1 equemene
GOTO2=/opt/GotoBLAS2
22 1 equemene
23 146 equemene
#OPENBLAS=/usr/lib/openblas-base
24 146 equemene
OPENBLAS=/usr/lib
25 6 equemene
26 1 equemene
ACML=/opt/acml
27 1 equemene
ACMLINC=$(ACML)/gfortran64_mp/include
28 1 equemene
ACMLLIB=$(ACML)/gfortran64_mp/lib
29 1 equemene
30 7 equemene
ATLAS=/usr/lib/atlas-base
31 1 equemene
32 146 equemene
#EXECUTABLE=cblas fblas gsl cublas thunking openblas acml clblas
33 146 equemene
#EXECUTABLE=cblas fblas gsl cublas thunking openblas clblas
34 146 equemene
#EXECUTABLE=gsl openblas clblas cublas thunking
35 146 equemene
#EXECUTABLE=openblas clblas cublas thunking
36 147 equemene
EXECUTABLE=acml gsl cblas fblas openblas clblas cublas thunking
37 1 equemene
38 1 equemene
FORMAT=DOUBLE
39 1 equemene
#FORMAT=FLOAT
40 1 equemene
41 1 equemene
#DIRECTIVES=-D$(FORMAT) -DPRINT -DUNIT
42 1 equemene
#DIRECTIVES=-D$(FORMAT) -DUNIT -DRESULTS -DQUIET
43 1 equemene
DIRECTIVES=-DUNIT -DQUIET
44 1 equemene
45 1 equemene
all: $(EXECUTABLE)
46 1 equemene
47 1 equemene
cblas: $(SOURCE)
48 1 equemene
49 7 equemene
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DCBLAS $(LDFLAGS) \
50 7 equemene
		$(SOURCE) -latlas -lcblas -o $(SOURCE:.c=)_SP_$@
51 1 equemene
52 7 equemene
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DCBLAS $(LDFLAGS) \
53 7 equemene
		$(SOURCE) -latlas -lcblas -o $(SOURCE:.c=)_DP_$@
54 1 equemene
55 1 equemene
gotoblas: $(SOURCE)
56 1 equemene
57 1 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DCBLAS $(LDFLAGS) \
58 1 equemene
		$(SOURCE) $(GOTO2)/libgoto2.a -lpthread -o $(SOURCE:.c=)_SP_$@
59 1 equemene
60 1 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DCBLAS $(LDFLAGS) \
61 1 equemene
		$(SOURCE) $(GOTO2)/libgoto2.a -lpthread -o $(SOURCE:.c=)_DP_$@
62 1 equemene
63 6 equemene
openblas: $(SOURCE)
64 6 equemene
65 146 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -L/usr/include/openblas -fopenmp -DFLOAT -DCBLAS $(LDFLAGS) \
66 6 equemene
		$(SOURCE) $(OPENBLAS)/libopenblas.a -lpthread -o $(SOURCE:.c=)_SP_$@
67 6 equemene
68 146 equemene
	$(CC) $(CFLAGS) $(DIRECTIVES) -L/usr/include/openblas -fopenmp -DDOUBLE -DCBLAS $(LDFLAGS) \
69 6 equemene
		$(SOURCE) $(OPENBLAS)/libopenblas.a -lpthread -o $(SOURCE:.c=)_DP_$@
70 6 equemene
71 1 equemene
acml: $(SOURCE)
72 1 equemene
73 1 equemene
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DACML $(LDFLAGS) \
74 51 equemene
		$(SOURCE) -L$(ACMLLIB) -lacml_mp \
75 1 equemene
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_SP_$@
76 1 equemene
77 1 equemene
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DACML $(LDFLAGS) \
78 51 equemene
		$(SOURCE) -L$(ACMLLIB) -lacml_mp \
79 1 equemene
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_DP_$@
80 1 equemene
81 1 equemene
fblas: $(SOURCE)
82 1 equemene
83 7 equemene
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DFBLAS $(LDFLAGS) \
84 7 equemene
		$(SOURCE) -latlas -lf77blas -o $(SOURCE:.c=)_SP_$@
85 1 equemene
86 7 equemene
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DFBLAS $(LDFLAGS) \
87 7 equemene
		$(SOURCE) -latlas -lf77blas -o $(SOURCE:.c=)_DP_$@
88 1 equemene
89 1 equemene
90 1 equemene
gsl: $(SOURCE)
91 1 equemene
92 1 equemene
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT \
93 1 equemene
		-DGSL $(LDFLAGS) \
94 1 equemene
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_SP_$@
95 1 equemene
96 1 equemene
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE \
97 1 equemene
		-DGSL $(LDFLAGS) \
98 1 equemene
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_DP_$@
99 1 equemene
100 51 equemene
clblas: $(SOURCE)
101 51 equemene
102 51 equemene
	$(CC) -I$(CLBLASINC) -L$(CLBLASLIB) $(CFLAGS) -DFLOAT \
103 51 equemene
		-DCLBLAS $(LDFLAGS) \
104 51 equemene
		$(DIRECTIVES) $(SOURCE) -lclBLAS -lOpenCL -o $(SOURCE:.c=)_SP_$@
105 51 equemene
106 51 equemene
	$(CC) -I$(CLBLASINC) -L$(CLBLASLIB) $(CFLAGS) -DDOUBLE \
107 51 equemene
		-DCLBLAS $(LDFLAGS) \
108 51 equemene
		$(DIRECTIVES) $(SOURCE) -lclBLAS -lOpenCL -o $(SOURCE:.c=)_DP_$@
109 51 equemene
110 1 equemene
cublas: $(SOURCE)
111 1 equemene
112 1 equemene
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DFLOAT \
113 1 equemene
		-DCUBLAS $(LDFLAGS) \
114 1 equemene
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_SP_$@
115 1 equemene
116 1 equemene
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DDOUBLE \
117 1 equemene
		-DCUBLAS $(LDFLAGS) \
118 1 equemene
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_DP_$@
119 1 equemene
120 1 equemene
thunking: $(SOURCE)
121 1 equemene
122 1 equemene
	# Copy of source for thunking CUBLAS approach
123 1 equemene
	cp $(CUDASRC)/$(THUNKING) $(CUDASRC)/$(THUNKING:.c=.h) \
124 1 equemene
		$(CUDASRC)/$(CUDASRCINC) .
125 1 equemene
	# Patch Thunking prototypes to compile on Debian Lenny
126 7 equemene
	$(CC) -DCUBLAS_GFORTRAN -I$(CUDAINC) $(CFLAGS) -c $(THUNKING)
127 1 equemene
128 7 equemene
	$(CC) -DCUBLAS_GFORTRAN \
129 7 equemene
		-I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DFLOAT -DTHUNKING \
130 1 equemene
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) \
131 1 equemene
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_SP_$@
132 1 equemene
133 7 equemene
	$(CC) -DCUBLAS_GFORTRAN \
134 7 equemene
		-I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DDOUBLE -DTHUNKING \
135 1 equemene
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) \
136 1 equemene
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_DP_$@
137 1 equemene
138 1 equemene
clean: $(SOURCE)
139 1 equemene
	find . -name "$(SOURCE:.c=)_*" -exec rm {} \;
140 1 equemene
	find . -name "$(THUNKING:.c=)*" -exec rm {} \;
141 1 equemene
	find . -name "*~" -exec rm {} \;
142 1 equemene
	find . -name "$(CUDASRCINC)" -exec rm {} \;
143 1 equemene
144 1 equemene
check: $(EXECUTABLE)
145 1 equemene
146 1 equemene
	$(SOURCE:.c=)_SP_$(EXECUTABLE) 2 1