Statistiques
| Révision :

root / BLAS / xGEMM / Makefile @ 7

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

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