Statistiques
| Révision :

root / BLAS / xGEMM / Makefile.Debian @ 92

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

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