Statistiques
| Révision :

root / BLAS / xTRSV / Makefile @ 1

Historique | Voir | Annoter | Télécharger (2,95 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
ACML=/opt/acml
20
ACMLINC=$(ACML)/gfortran64_mp/include
21
ACMLLIB=$(ACML)/gfortran64_mp/lib
22

    
23
EXECUTABLE=cblas fblas gsl cublas thunking gotoblas acml
24

    
25
#FORMAT=DOUBLE
26
FORMAT=FLOAT
27

    
28
#DIRECTIVES=-D$(FORMAT) -DPRINT -DUNIT
29
#DIRECTIVES=-D$(FORMAT) -DUNIT -DRESULTS -DQUIET
30
DIRECTIVES=-DQUIET -DUNIT
31

    
32
all: $(EXECUTABLE)
33

    
34
cblas: $(SOURCE)
35

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

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

    
42
gotoblas: $(SOURCE)
43

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

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

    
50
acml: $(SOURCE)
51

    
52
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DACML $(LDFLAGS) \
53
		$(SOURCE) -L$(ACMLLIB) -lacml_mp -lacml_mv \
54
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_SP_$@
55

    
56
	$(CC) -I$(ACMLINC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DACML $(LDFLAGS) \
57
		$(SOURCE) -L$(ACMLLIB) -lacml_mp -lacml_mv \
58
		-lgomp -lgfortran -lpthread -o $(SOURCE:.c=)_DP_$@
59

    
60
fblas: $(SOURCE)
61

    
62
	$(CC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DFBLAS $(LDFLAGS) \
63
		$(SOURCE) -lf77blas -o $(SOURCE:.c=)_SP_$@
64

    
65
	$(CC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DFBLAS $(LDFLAGS) \
66
		$(SOURCE) -lf77blas -o $(SOURCE:.c=)_DP_$@
67

    
68

    
69
gsl: $(SOURCE)
70

    
71
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DFLOAT -DGSL $(LDFLAGS) \
72
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_SP_$@
73

    
74
	$(CC) -I$(GSLINC) $(CFLAGS) $(DIRECTIVES) -DDOUBLE -DGSL $(LDFLAGS) \
75
		$(SOURCE) -lgslcblas -o $(SOURCE:.c=)_DP_$@
76

    
77

    
78
cublas: $(SOURCE)
79

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

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

    
86
thunking: $(SOURCE)
87

    
88
# Copy of source for thunking CUBLAS approach
89
	cp $(CUDASRC)/$(THUNKING) $(CUDASRC)/$(THUNKING:.c=.h) \
90
		$(CUDASRC)/$(CUDASRCINC) .
91
# Patch Thunking prototypes to compile on Debian Lenny
92
	patch $(CUDASRCINC) $(PATCHTHUNKING)
93
	$(CC) -I$(CUDAINC) $(CFLAGS) -c $(THUNKING)
94

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

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

    
103
clean: $(SOURCE)
104
	find . -name "$(SOURCE:.c=)_*" -exec rm {} \;
105
	find . -name "$(THUNKING:.c=)*" -exec rm {} \;
106
	find . -name "*~" -exec rm {} \;
107
	find . -name "$(CUDASRCINC)" -exec rm {} \;