Révision 19

BLAS/xGEMM/Makefile.Debian (revision 19)
1
SOURCE=xGEMM.c
2

  
3
CC=gcc-4.6
4
FC=gfortran-4.6
5
CFLAGS=-Wall -O3
6
LDFLAGS=-lm
7
CUDADIR=
8
CUDASRC=/usr/share/doc/nvidia-cuda-doc/examples
9
THUNKING=fortran_thunking.c
10
CUDASRCINC=fortran_common.h
11
CUDAINC=/usr/include
12
CUDALIB=/usr/lib/x86_64-linux-gnu/
13

  
14
PATCHTHUNKING=patch_thunking.h
15

  
16
GSLINC=/usr/include/gsl
17

  
18
GOTO2=/opt/GotoBLAS2
19

  
20
OPENBLAS=/usr/lib/openblas-base
21

  
22
ACML=/opt/acml
23
ACMLINC=$(ACML)/gfortran64_mp/include
24
ACMLLIB=$(ACML)/gfortran64_mp/lib
25

  
26
ATLAS=/usr/lib/atlas-base
27

  
28
EXECUTABLE=cblas fblas gsl cublas thunking openblas
29

  
30
FORMAT=DOUBLE
31
#FORMAT=FLOAT
32

  
33
#DIRECTIVES=-D$(FORMAT) -DPRINT -DUNIT
34
#DIRECTIVES=-D$(FORMAT) -DUNIT -DRESULTS -DQUIET
35
DIRECTIVES=-DUNIT -DQUIET
36

  
37
all: $(EXECUTABLE)
38

  
39
cblas: $(SOURCE)
40

  
41
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DCBLAS $(LDFLAGS) \
42
		$(SOURCE) -latlas -lcblas -o $(SOURCE:.c=)_SP_$@
43

  
44
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DCBLAS $(LDFLAGS) \
45
		$(SOURCE) -latlas -lcblas -o $(SOURCE:.c=)_DP_$@
46

  
47
gotoblas: $(SOURCE)
48

  
49
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DCBLAS $(LDFLAGS) \
50
		$(SOURCE) $(GOTO2)/libgoto2.a -lpthread -o $(SOURCE:.c=)_SP_$@
51

  
52
	$(CC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DCBLAS $(LDFLAGS) \
53
		$(SOURCE) $(GOTO2)/libgoto2.a -lpthread -o $(SOURCE:.c=)_DP_$@
54

  
55
openblas: $(SOURCE)
56

  
57
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DCBLAS $(LDFLAGS) \
58
		$(SOURCE) $(OPENBLAS)/libopenblas.a -lpthread -o $(SOURCE:.c=)_SP_$@
59

  
60
	$(CC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DCBLAS $(LDFLAGS) \
61
		$(SOURCE) $(OPENBLAS)/libopenblas.a -lpthread -o $(SOURCE:.c=)_DP_$@
62

  
63
acml: $(SOURCE)
64

  
65
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DACML $(LDFLAGS) \
66
		$(SOURCE) -L$(ACMLLIB) -lacml_mp -lacml_mv \
67
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_SP_$@
68

  
69
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DACML $(LDFLAGS) \
70
		$(SOURCE) -L$(ACMLLIB) -lacml_mp -lacml_mv \
71
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_DP_$@
72

  
73
fblas: $(SOURCE)
74

  
75
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DFBLAS $(LDFLAGS) \
76
		$(SOURCE) -latlas -lf77blas -o $(SOURCE:.c=)_SP_$@
77

  
78
	$(CC) -L$(ATLAS) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DFBLAS $(LDFLAGS) \
79
		$(SOURCE) -latlas -lf77blas -o $(SOURCE:.c=)_DP_$@
80

  
81

  
82
gsl: $(SOURCE)
83

  
84
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT \
85
		-DGSL $(LDFLAGS) \
86
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_SP_$@
87

  
88
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE \
89
		-DGSL $(LDFLAGS) \
90
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_DP_$@
91

  
92
cublas: $(SOURCE)
93

  
94
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DFLOAT \
95
		-DCUBLAS $(LDFLAGS) \
96
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_SP_$@
97

  
98
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DDOUBLE \
99
		-DCUBLAS $(LDFLAGS) \
100
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_DP_$@
101

  
102
thunking: $(SOURCE)
103

  
104
	# Copy of source for thunking CUBLAS approach
105
	cp $(CUDASRC)/$(THUNKING) $(CUDASRC)/$(THUNKING:.c=.h) \
106
		$(CUDASRC)/$(CUDASRCINC) .
107
	# Patch Thunking prototypes to compile on Debian Lenny
108
	$(CC) -DCUBLAS_GFORTRAN -I$(CUDAINC) $(CFLAGS) -c $(THUNKING)
109

  
110
	$(CC) -DCUBLAS_GFORTRAN \
111
		-I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DFLOAT -DTHUNKING \
112
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) \
113
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_SP_$@
114

  
115
	$(CC) -DCUBLAS_GFORTRAN \
116
		-I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DDOUBLE -DTHUNKING \
117
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) \
118
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_DP_$@
119

  
120
clean: $(SOURCE)
121
	find . -name "$(SOURCE:.c=)_*" -exec rm {} \;
122
	find . -name "$(THUNKING:.c=)*" -exec rm {} \;
123
	find . -name "*~" -exec rm {} \;
124
	find . -name "$(CUDASRCINC)" -exec rm {} \;
125

  
126
check: $(EXECUTABLE)
127

  
128
	$(SOURCE:.c=)_SP_$(EXECUTABLE) 2 1
129

  

Formats disponibles : Unified diff