You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 9.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. TOPDIR = ..
  2. include ../Makefile.system
  3. ifeq ($(NOFORTRAN),1)
  4. all ::
  5. else
  6. all :: level1 level2 level3
  7. endif
  8. ifeq ($(BUILD_SINGLE),1)
  9. S1=sblat1
  10. endif
  11. ifeq ($(BUILD_DOUBLE),1)
  12. D1=dblat1
  13. endif
  14. ifeq ($(BUILD_COMPLEX),1)
  15. C1=cblat1
  16. endif
  17. ifeq ($(BUILD_COMPLEX16),1)
  18. Z1=zblat1
  19. endif
  20. level1: $(S1) $(D1) $(C1) $(Z1)
  21. ifneq ($(CROSS), 1)
  22. ifeq ($(BUILD_SINGLE),1)
  23. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat1
  24. endif
  25. ifeq ($(BUILD_DOUBLE),1)
  26. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat1
  27. endif
  28. ifeq ($(BUILD_COMPLEX),1)
  29. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat1
  30. endif
  31. ifeq ($(BUILD_COMPLEX16),1)
  32. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat1
  33. endif
  34. ifdef SMP
  35. ifeq ($(USE_OPENMP), 1)
  36. ifeq ($(BUILD_SINGLE),1)
  37. OMP_NUM_THREADS=2 ./sblat1
  38. endif
  39. ifeq ($(BUILD_DOUBLE),1)
  40. OMP_NUM_THREADS=2 ./dblat1
  41. endif
  42. ifeq ($(BUILD_COMPLEX),1)
  43. OMP_NUM_THREADS=2 ./cblat1
  44. endif
  45. ifeq ($(BUILD_COMPLEX16),1)
  46. OMP_NUM_THREADS=2 ./zblat1
  47. endif
  48. else
  49. ifeq ($(BUILD_SINGLE),1)
  50. OPENBLAS_NUM_THREADS=2 ./sblat1
  51. endif
  52. ifeq ($(BUILD_DOUBLE),1)
  53. OPENBLAS_NUM_THREADS=2 ./dblat1
  54. endif
  55. ifeq ($(BUILD_COMPLEX),1)
  56. OPENBLAS_NUM_THREADS=2 ./cblat1
  57. endif
  58. ifeq ($(BUILD_COMPLEX16),1)
  59. OPENBLAS_NUM_THREADS=2 ./zblat1
  60. endif
  61. endif
  62. endif
  63. endif
  64. ifeq ($(BUILD_SINGLE),1)
  65. S2=sblat2
  66. endif
  67. ifeq ($(BUILD_DOUBLE),1)
  68. D2=dblat2
  69. endif
  70. ifeq ($(BUILD_COMPLEX),1)
  71. C2=cblat2
  72. endif
  73. ifeq ($(BUILD_COMPLEX16),1)
  74. Z2=zblat2
  75. endif
  76. level2: $(S2) $(D2) $(C2) $(Z2)
  77. ifneq ($(CROSS), 1)
  78. rm -f ?BLAT2.SUMM
  79. ifeq ($(BUILD_SINGLE),1)
  80. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat2 < ./sblat2.dat
  81. @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
  82. endif
  83. ifeq ($(BUILD_DOUBLE),1)
  84. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat2 < ./dblat2.dat
  85. @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
  86. endif
  87. ifeq ($(BUILD_COMPLEX),1)
  88. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat2 < ./cblat2.dat
  89. @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
  90. endif
  91. ifeq ($(BUILD_COMPLEX16),1)
  92. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat2 < ./zblat2.dat
  93. @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
  94. endif
  95. ifdef SMP
  96. rm -f ?BLAT2.SUMM
  97. ifeq ($(USE_OPENMP), 1)
  98. ifeq ($(BUILD_SINGLE),1)
  99. OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
  100. @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
  101. endif
  102. ifeq ($(BUILD_DOUBLE),1)
  103. OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
  104. @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
  105. endif
  106. ifeq ($(BUILD_COMPLEX),1)
  107. OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
  108. @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
  109. endif
  110. ifeq ($(BUILD_COMPLEX16),1)
  111. OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
  112. @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
  113. endif
  114. else
  115. ifeq ($(BUILD_SINGLE),1)
  116. OPENBLAS_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
  117. @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
  118. endif
  119. ifeq ($(BUILD_DOUBLE),1)
  120. OPENBLAS_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
  121. @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
  122. endif
  123. ifeq ($(BUILD_COMPLEX),1)
  124. OPENBLAS_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
  125. @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
  126. endif
  127. ifeq ($(BUILD_COMPLEX16),1)
  128. OPENBLAS_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
  129. @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
  130. endif
  131. endif
  132. endif
  133. endif
  134. ifeq ($(BUILD_BFLOAT16),1)
  135. B3= test_sbgemm
  136. endif
  137. ifeq ($(BUILD_SINGLE),1)
  138. S3=sblat3
  139. endif
  140. ifeq ($(BUILD_DOUBLE),1)
  141. D3=dblat3
  142. endif
  143. ifeq ($(BUILD_COMPLEX),1)
  144. C3=cblat3
  145. endif
  146. ifeq ($(BUILD_COMPLEX16),1)
  147. Z3=zblat3
  148. endif
  149. level3: $(B3) $(S3) $(D3) $(C3) $(Z3)
  150. ifneq ($(CROSS), 1)
  151. rm -f ?BLAT3.SUMM
  152. ifeq ($(BUILD_BFLOAT16),1)
  153. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./test_sbgemm > SBBLAT3.SUMM
  154. @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
  155. endif
  156. ifeq ($(BUILD_SINGLE),1)
  157. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
  158. @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
  159. endif
  160. ifeq ($(BUILD_DOUBLE),1)
  161. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
  162. @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
  163. endif
  164. ifeq ($(BUILD_COMPLEX),1)
  165. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3 < ./cblat3.dat
  166. @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
  167. endif
  168. ifeq ($(BUILD_COMPLEX16),1)
  169. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3 < ./zblat3.dat
  170. @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
  171. endif
  172. ifdef SMP
  173. rm -f ?BLAT3.SUMM
  174. ifeq ($(USE_OPENMP), 1)
  175. ifeq ($(BUILD_BFLOAT16),1)
  176. OMP_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM
  177. @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
  178. endif
  179. ifeq ($(BUILD_SINGLE),1)
  180. OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
  181. @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
  182. endif
  183. ifeq ($(BUILD_DOUBLE),1)
  184. OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
  185. @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
  186. endif
  187. ifeq ($(BUILD_COMPLEX),1)
  188. OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
  189. @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
  190. endif
  191. ifeq ($(BUILD_COMPLEX16),1)
  192. OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
  193. @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
  194. endif
  195. else
  196. ifeq ($(BUILD_BFLOAT16),1)
  197. OPENBLAS_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM
  198. @$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
  199. endif
  200. ifeq ($(BUILD_SINGLE),1)
  201. OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
  202. @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
  203. endif
  204. ifeq ($(BUILD_DOUBLE),1)
  205. OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
  206. @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
  207. endif
  208. ifeq ($(BUILD_COMPLEX),1)
  209. OPENBLAS_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
  210. @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
  211. endif
  212. ifeq ($(BUILD_COMPLEX16),1)
  213. OPENBLAS_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
  214. @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
  215. endif
  216. endif
  217. endif
  218. endif
  219. level3_3m : zblat3_3m cblat3_3m
  220. ifneq ($(CROSS), 1)
  221. rm -f ?BLAT3_3M.SUMM
  222. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3_3m < ./cblat3_3m.dat
  223. @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
  224. OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3_3m < ./zblat3_3m.dat
  225. @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
  226. ifdef SMP
  227. rm -f ?BLAT3_3M.SUMM
  228. ifeq ($(USE_OPENMP), 1)
  229. OMP_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat
  230. @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
  231. OMP_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat
  232. @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
  233. else
  234. OPENBLAS_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat
  235. @$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
  236. OPENBLAS_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat
  237. @$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
  238. endif
  239. endif
  240. endif
  241. FLDFLAGS = $(FFLAGS:-fPIC=) $(LDFLAGS)
  242. ifeq ($(CORE), C910V)
  243. EXTRALIB =
  244. CEXTRALIB =
  245. endif
  246. ifeq ($(USE_OPENMP), 1)
  247. ifeq ($(F_COMPILER), GFORTRAN)
  248. ifeq ($(C_COMPILER), CLANG)
  249. CEXTRALIB = -lomp
  250. endif
  251. endif
  252. endif
  253. ifeq ($(BUILD_SINGLE),1)
  254. sblat1 : sblat1.$(SUFFIX) ../$(LIBNAME)
  255. $(FC) $(FLDFLAGS) -o sblat1 sblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  256. sblat2 : sblat2.$(SUFFIX) ../$(LIBNAME)
  257. $(FC) $(FLDFLAGS) -o sblat2 sblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  258. sblat3 : sblat3.$(SUFFIX) ../$(LIBNAME)
  259. $(FC) $(FLDFLAGS) -o sblat3 sblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  260. endif
  261. ifeq ($(BUILD_DOUBLE),1)
  262. dblat1 : dblat1.$(SUFFIX) ../$(LIBNAME)
  263. $(FC) $(FLDFLAGS) -o dblat1 dblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  264. dblat2 : dblat2.$(SUFFIX) ../$(LIBNAME)
  265. $(FC) $(FLDFLAGS) -o dblat2 dblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  266. dblat3 : dblat3.$(SUFFIX) ../$(LIBNAME)
  267. $(FC) $(FLDFLAGS) -o dblat3 dblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  268. else
  269. dblat2:
  270. dblat3:
  271. endif
  272. qblat1 : qblat1.$(SUFFIX) ../$(LIBNAME)
  273. $(FC) $(FLDFLAGS) -o qblat1 qblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  274. ifeq ($(BUILD_COMPLEX),1)
  275. cblat1 : cblat1.$(SUFFIX) ../$(LIBNAME)
  276. $(FC) $(FLDFLAGS) -o cblat1 cblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  277. cblat2 : cblat2.$(SUFFIX) ../$(LIBNAME)
  278. $(FC) $(FLDFLAGS) -o cblat2 cblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  279. cblat3 : cblat3.$(SUFFIX) ../$(LIBNAME)
  280. $(FC) $(FLDFLAGS) -o cblat3 cblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  281. endif
  282. ifeq ($(BUILD_COMPLEX16),1)
  283. zblat1 : zblat1.$(SUFFIX) ../$(LIBNAME)
  284. $(FC) $(FLDFLAGS) -o zblat1 zblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  285. zblat2 : zblat2.$(SUFFIX) ../$(LIBNAME)
  286. $(FC) $(FLDFLAGS) -o zblat2 zblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  287. zblat3 : zblat3.$(SUFFIX) ../$(LIBNAME)
  288. $(FC) $(FLDFLAGS) -o zblat3 zblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  289. endif
  290. ifeq ($(BUILD_BFLOAT16),1)
  291. test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME)
  292. $(FC) $(FLDFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  293. endif
  294. ifeq ($(BUILD_COMPLEX),1)
  295. cblat3_3m : cblat3_3m.$(SUFFIX) ../$(LIBNAME)
  296. $(FC) $(FLDFLAGS) -o cblat3_3m cblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  297. endif
  298. ifeq ($(BUILD_COMPLEX16),1)
  299. zblat3_3m : zblat3_3m.$(SUFFIX) ../$(LIBNAME)
  300. $(FC) $(FLDFLAGS) -o zblat3_3m zblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
  301. endif
  302. clean:
  303. @rm -f *.$(SUFFIX) *.$(PSUFFIX) gmon.$(SUFFIX)ut *.SUMM *.cxml *.exe *.pdb *.dwf \
  304. sblat1 dblat1 cblat1 zblat1 \
  305. sblat2 dblat2 cblat2 zblat2 \
  306. test_sbgemm sblat3 dblat3 cblat3 zblat3 \
  307. sblat1p dblat1p cblat1p zblat1p \
  308. sblat2p dblat2p cblat2p zblat2p \
  309. sblat3p dblat3p cblat3p zblat3p \
  310. zblat3_3m zblat3_3mp \
  311. cblat3_3m cblat3_3mp \
  312. *.stackdump *.dll
  313. libs:
  314. prof:
  315. quick :
  316. $(MAKE) -C $(TOPDIR) libs
  317. # include ../Makefile.tail