2 include ../Makefile.system
3 ifeq ($(F_COMPILER),GFORTRAN)
4 override FFLAGS += -fno-tree-vectorize
10 all :: level1 level2 level3
13 ifeq ($(BUILD_SINGLE),1)
16 ifeq ($(BUILD_DOUBLE),1)
19 ifeq ($(BUILD_COMPLEX),1)
22 ifeq ($(BUILD_COMPLEX16),1)
26 level1: $(S1) $(D1) $(C1) $(Z1)
29 ifeq ($(BUILD_SINGLE),1)
30 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat1
32 ifeq ($(BUILD_DOUBLE),1)
33 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat1
35 ifeq ($(BUILD_COMPLEX),1)
36 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat1
38 ifeq ($(BUILD_COMPLEX16),1)
39 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat1
42 ifeq ($(USE_OPENMP), 1)
43 ifeq ($(BUILD_SINGLE),1)
44 OMP_NUM_THREADS=2 ./sblat1
46 ifeq ($(BUILD_DOUBLE),1)
47 OMP_NUM_THREADS=2 ./dblat1
49 ifeq ($(BUILD_COMPLEX),1)
50 OMP_NUM_THREADS=2 ./cblat1
52 ifeq ($(BUILD_COMPLEX16),1)
53 OMP_NUM_THREADS=2 ./zblat1
56 ifeq ($(BUILD_SINGLE),1)
57 OPENBLAS_NUM_THREADS=2 ./sblat1
59 ifeq ($(BUILD_DOUBLE),1)
60 OPENBLAS_NUM_THREADS=2 ./dblat1
62 ifeq ($(BUILD_COMPLEX),1)
63 OPENBLAS_NUM_THREADS=2 ./cblat1
65 ifeq ($(BUILD_COMPLEX16),1)
66 OPENBLAS_NUM_THREADS=2 ./zblat1
72 ifeq ($(BUILD_SINGLE),1)
75 ifeq ($(BUILD_DOUBLE),1)
78 ifeq ($(BUILD_COMPLEX),1)
81 ifeq ($(BUILD_COMPLEX16),1)
85 level2: $(S2) $(D2) $(C2) $(Z2)
90 ifeq ($(BUILD_SINGLE),1)
91 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat2 < ./sblat2.dat
92 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
94 ifeq ($(BUILD_DOUBLE),1)
95 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat2 < ./dblat2.dat
96 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
98 ifeq ($(BUILD_COMPLEX),1)
99 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat2 < ./cblat2.dat
100 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
102 ifeq ($(BUILD_COMPLEX16),1)
103 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat2 < ./zblat2.dat
104 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
108 ifeq ($(USE_OPENMP), 1)
109 ifeq ($(BUILD_SINGLE),1)
110 OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
111 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
113 ifeq ($(BUILD_DOUBLE),1)
114 OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
115 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
117 ifeq ($(BUILD_COMPLEX),1)
118 OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
119 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
121 ifeq ($(BUILD_COMPLEX16),1)
122 OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
123 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
126 ifeq ($(BUILD_SINGLE),1)
127 OPENBLAS_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
128 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
130 ifeq ($(BUILD_DOUBLE),1)
131 OPENBLAS_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
132 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
134 ifeq ($(BUILD_COMPLEX),1)
135 OPENBLAS_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
136 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
138 ifeq ($(BUILD_COMPLEX16),1)
139 OPENBLAS_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
140 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
146 ifeq ($(BUILD_BFLOAT16),1)
149 ifeq ($(BUILD_SINGLE),1)
152 ifeq ($(BUILD_DOUBLE),1)
155 ifeq ($(BUILD_COMPLEX),1)
158 ifeq ($(BUILD_COMPLEX16),1)
162 level3: $(B3) $(S3) $(D3) $(C3) $(Z3)
167 ifeq ($(BUILD_BFLOAT16),1)
168 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./test_sbgemm > SBBLAT3.SUMM
169 @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
171 ifeq ($(BUILD_SINGLE),1)
172 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
173 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
175 ifeq ($(BUILD_DOUBLE),1)
176 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
177 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
179 ifeq ($(BUILD_COMPLEX),1)
180 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3 < ./cblat3.dat
181 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
183 ifeq ($(BUILD_COMPLEX16),1)
184 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3 < ./zblat3.dat
185 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
189 ifeq ($(USE_OPENMP), 1)
190 ifeq ($(BUILD_BFLOAT16),1)
191 OMP_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM
192 @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
194 ifeq ($(BUILD_SINGLE),1)
195 OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
196 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
198 ifeq ($(BUILD_DOUBLE),1)
199 OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
200 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
202 ifeq ($(BUILD_COMPLEX),1)
203 OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
204 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
206 ifeq ($(BUILD_COMPLEX16),1)
207 OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
208 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
211 ifeq ($(BUILD_BFLOAT16),1)
212 OPENBLAS_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM
213 @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
215 ifeq ($(BUILD_SINGLE),1)
216 OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
217 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
219 ifeq ($(BUILD_DOUBLE),1)
220 OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
221 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
223 ifeq ($(BUILD_COMPLEX),1)
224 OPENBLAS_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
225 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
227 ifeq ($(BUILD_COMPLEX16),1)
228 OPENBLAS_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
229 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
236 level3_3m : zblat3_3m cblat3_3m
239 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3_3m < ./cblat3_3m.dat
240 @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
241 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3_3m < ./zblat3_3m.dat
242 @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
245 ifeq ($(USE_OPENMP), 1)
246 OMP_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat
247 @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
248 OMP_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat
249 @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
251 OPENBLAS_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat
252 @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
253 OPENBLAS_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat
254 @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
262 FLDFLAGS = $(FFLAGS:-fPIC=) $(LDFLAGS)
265 ifeq ($(USE_OPENMP), 1)
266 ifeq ($(F_COMPILER), GFORTRAN)
267 ifeq ($(C_COMPILER), CLANG)
271 ifeq ($(F_COMPILER), NAG)
276 ifeq ($(BUILD_SINGLE),1)
277 sblat1 : sblat1.$(SUFFIX) ../$(LIBNAME)
278 $(FC) $(FLDFLAGS) -o sblat1 sblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
280 sblat2 : sblat2.$(SUFFIX) ../$(LIBNAME)
281 $(FC) $(FLDFLAGS) -o sblat2 sblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
283 sblat3 : sblat3.$(SUFFIX) ../$(LIBNAME)
284 $(FC) $(FLDFLAGS) -o sblat3 sblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
287 ifeq ($(BUILD_DOUBLE),1)
288 dblat1 : dblat1.$(SUFFIX) ../$(LIBNAME)
289 $(FC) $(FLDFLAGS) -o dblat1 dblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
291 dblat2 : dblat2.$(SUFFIX) ../$(LIBNAME)
292 $(FC) $(FLDFLAGS) -o dblat2 dblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
294 dblat3 : dblat3.$(SUFFIX) ../$(LIBNAME)
295 $(FC) $(FLDFLAGS) -o dblat3 dblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
302 qblat1 : qblat1.$(SUFFIX) ../$(LIBNAME)
303 $(FC) $(FLDFLAGS) -o qblat1 qblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
305 ifeq ($(BUILD_COMPLEX),1)
306 cblat1 : cblat1.$(SUFFIX) ../$(LIBNAME)
307 $(FC) $(FLDFLAGS) -o cblat1 cblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
309 cblat2 : cblat2.$(SUFFIX) ../$(LIBNAME)
310 $(FC) $(FLDFLAGS) -o cblat2 cblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
312 cblat3 : cblat3.$(SUFFIX) ../$(LIBNAME)
313 $(FC) $(FLDFLAGS) -o cblat3 cblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
316 ifeq ($(BUILD_COMPLEX16),1)
317 zblat1 : zblat1.$(SUFFIX) ../$(LIBNAME)
318 $(FC) $(FLDFLAGS) -o zblat1 zblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
320 zblat2 : zblat2.$(SUFFIX) ../$(LIBNAME)
321 $(FC) $(FLDFLAGS) -o zblat2 zblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
323 zblat3 : zblat3.$(SUFFIX) ../$(LIBNAME)
324 $(FC) $(FLDFLAGS) -o zblat3 zblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
327 ifeq ($(BUILD_BFLOAT16),1)
328 test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME)
329 $(FC) $(FLDFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
332 ifeq ($(BUILD_COMPLEX),1)
333 cblat3_3m : cblat3_3m.$(SUFFIX) ../$(LIBNAME)
334 $(FC) $(FLDFLAGS) -o cblat3_3m cblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
337 ifeq ($(BUILD_COMPLEX16),1)
338 zblat3_3m : zblat3_3m.$(SUFFIX) ../$(LIBNAME)
339 $(FC) $(FLDFLAGS) -o zblat3_3m zblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
345 @rm -f *.$(SUFFIX) *.$(PSUFFIX) gmon.$(SUFFIX)ut *.SUMM *.cxml *.exe *.pdb *.dwf \
346 sblat1 dblat1 cblat1 zblat1 \
347 sblat2 dblat2 cblat2 zblat2 \
348 test_sbgemm sblat3 dblat3 cblat3 zblat3 \
349 sblat1p dblat1p cblat1p zblat1p \
350 sblat2p dblat2p cblat2p zblat2p \
351 sblat3p dblat3p cblat3p zblat3p \
352 zblat3_3m zblat3_3mp \
353 cblat3_3m cblat3_3mp \
361 $(MAKE) -C $(TOPDIR) libs
363 # include ../Makefile.tail