Statistiques
| Révision :

root / BLAS / xTRSV / Makefile @ 6

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

1
SOURCE=xTRSV.c
2

    
3
CC=gcc
4
CFLAGS=-Wall -O3
5
LDFLAGS=-lm
6
CUDADIR=/opt/cuda
7
CUDASRC=$(CUDADIR)/src
8
THUNKING=fortran_thunking.c
9
CUDASRCINC=fortran_common.h
10
CUDAINC=$(CUDADIR)/include
11
CUDALIB=$(CUDADIR)/lib64
12

    
13
PATCHTHUNKING=patch_thunking.h
14

    
15
GSLINC=/usr/include/gsl
16

    
17
GOTO2=/opt/GotoBLAS2
18

    
19
OPENBLAS=/opt/OpenBLAS
20

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

    
25
EXECUTABLE=cblas fblas gsl cublas thunking gotoblas acml openblas
26

    
27
#FORMAT=DOUBLE
28
FORMAT=FLOAT
29

    
30
#DIRECTIVES=-D$(FORMAT) -DPRINT -DUNIT
31
#DIRECTIVES=-D$(FORMAT) -DUNIT -DRESULTS -DQUIET
32
DIRECTIVES=-DQUIET -DUNIT
33

    
34
all: $(EXECUTABLE)
35

    
36
cblas: $(SOURCE)
37

    
38
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DCBLAS $(LDFLAGS) \
39
		$(SOURCE) -lcblas -o $(SOURCE:.c=)_SP_$@
40

    
41
	$(CC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DCBLAS $(LDFLAGS) \
42
		$(SOURCE) -lcblas -o $(SOURCE:.c=)_DP_$@
43

    
44
gotoblas: $(SOURCE)
45

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

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

    
52
openblas: $(SOURCE)
53

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

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

    
60
acml: $(SOURCE)
61

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

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

    
70
fblas: $(SOURCE)
71

    
72
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DFBLAS $(LDFLAGS) \
73
		$(SOURCE) -lf77blas -o $(SOURCE:.c=)_SP_$@
74

    
75
	$(CC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DFBLAS $(LDFLAGS) \
76
		$(SOURCE) -lf77blas -o $(SOURCE:.c=)_DP_$@
77

    
78

    
79
gsl: $(SOURCE)
80

    
81
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DGSL $(LDFLAGS) \
82
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_SP_$@
83

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

    
87

    
88
cublas: $(SOURCE)
89

    
90
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DCUBLAS -DFLOAT $(LDFLAGS) \
91
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_SP_$@
92

    
93
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DCUBLAS -DDOUBLE $(LDFLAGS) \
94
		$(DIRECTIVES) $(SOURCE) -lcublas -o $(SOURCE:.c=)_DP_$@
95

    
96
thunking: $(SOURCE)
97

    
98
# Copy of source for thunking CUBLAS approach
99
	cp $(CUDASRC)/$(THUNKING) $(CUDASRC)/$(THUNKING:.c=.h) \
100
		$(CUDASRC)/$(CUDASRCINC) .
101
# Patch Thunking prototypes to compile on Debian Lenny
102
	patch $(CUDASRCINC) $(PATCHTHUNKING)
103
	$(CC) -I$(CUDAINC) $(CFLAGS) -c $(THUNKING)
104

    
105
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DTHUNKING \
106
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) -DFLOAT \
107
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_SP_$@
108

    
109
	$(CC) -I$(CUDAINC) -L$(CUDALIB) $(CFLAGS) -DTHUNKING \
110
		$(LDFLAGS) $(DIRECTIVES) $(SOURCE) -DDOUBLE \
111
		$(THUNKING:.c=.o) -lcublas -o $(SOURCE:.c=)_DP_$@
112

    
113
clean: $(SOURCE)
114
	find . -name "$(SOURCE:.c=)_*" -exec rm {} \;
115
	find . -name "$(THUNKING:.c=)*" -exec rm {} \;
116
	find . -name "*~" -exec rm {} \;
117
	find . -name "$(CUDASRCINC)" -exec rm {} \;