Statistiques
| Révision :

root / BLAS / xTRSV / Makefile @ 1

Historique | Voir | Annoter | Télécharger (2,95 ko)

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