There are two instances when building the tests where OpenBLAS fails to build with OpenMP and clang due to library paths getting reset as flags are set rather than appended. This seems to only affect certain clang/libomp installations, but if it's already grabbing the correct library paths we might as well use them.
364 lines
9.6 KiB
Makefile
364 lines
9.6 KiB
Makefile
TOPDIR = ..
|
|
include ../Makefile.system
|
|
ifeq ($(F_COMPILER),GFORTRAN)
|
|
override FFLAGS += -fno-tree-vectorize
|
|
endif
|
|
|
|
ifeq ($(NOFORTRAN),1)
|
|
all ::
|
|
else
|
|
all :: level1 level2 level3
|
|
endif
|
|
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
S1=sblat1
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
D1=dblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
C1=cblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
Z1=zblat1
|
|
endif
|
|
|
|
level1: $(S1) $(D1) $(C1) $(Z1)
|
|
|
|
ifneq ($(CROSS), 1)
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat1
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat1
|
|
endif
|
|
ifdef SMP
|
|
ifeq ($(USE_OPENMP), 1)
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OMP_NUM_THREADS=2 ./sblat1
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OMP_NUM_THREADS=2 ./dblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OMP_NUM_THREADS=2 ./cblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OMP_NUM_THREADS=2 ./zblat1
|
|
endif
|
|
else
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OPENBLAS_NUM_THREADS=2 ./sblat1
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OPENBLAS_NUM_THREADS=2 ./dblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OPENBLAS_NUM_THREADS=2 ./cblat1
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OPENBLAS_NUM_THREADS=2 ./zblat1
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
S2=sblat2
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
D2=dblat2
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
C2=cblat2
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
Z2=zblat2
|
|
endif
|
|
|
|
level2: $(S2) $(D2) $(C2) $(Z2)
|
|
|
|
|
|
ifneq ($(CROSS), 1)
|
|
rm -f ?BLAT2.SUMM
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat2 < ./sblat2.dat
|
|
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat2 < ./dblat2.dat
|
|
@$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat2 < ./cblat2.dat
|
|
@$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat2 < ./zblat2.dat
|
|
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
|
|
endif
|
|
ifdef SMP
|
|
rm -f ?BLAT2.SUMM
|
|
ifeq ($(USE_OPENMP), 1)
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
|
|
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
|
|
@$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
|
|
@$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
|
|
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
|
|
endif
|
|
else
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OPENBLAS_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
|
|
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OPENBLAS_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
|
|
@$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OPENBLAS_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
|
|
@$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OPENBLAS_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
|
|
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(BUILD_BFLOAT16),1)
|
|
B3= test_sbgemm
|
|
endif
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
S3=sblat3
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
D3=dblat3
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
C3=cblat3
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
Z3=zblat3
|
|
endif
|
|
|
|
level3: $(B3) $(S3) $(D3) $(C3) $(Z3)
|
|
|
|
|
|
ifneq ($(CROSS), 1)
|
|
rm -f ?BLAT3.SUMM
|
|
ifeq ($(BUILD_BFLOAT16),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./test_sbgemm > SBBLAT3.SUMM
|
|
@$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
|
|
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
|
|
@$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3 < ./cblat3.dat
|
|
@$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3 < ./zblat3.dat
|
|
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
|
|
endif
|
|
ifdef SMP
|
|
rm -f ?BLAT3.SUMM
|
|
ifeq ($(USE_OPENMP), 1)
|
|
ifeq ($(BUILD_BFLOAT16),1)
|
|
OMP_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM
|
|
@$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
|
|
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
|
|
@$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
|
|
@$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
|
|
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
|
|
endif
|
|
else
|
|
ifeq ($(BUILD_BFLOAT16),1)
|
|
OPENBLAS_NUM_THREADS=2 ./test_sbgemm > SBBLAT3.SUMM
|
|
@$(GREP) -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
|
|
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
|
|
@$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
OPENBLAS_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
|
|
@$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
|
|
endif
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
OPENBLAS_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
|
|
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|
|
level3_3m : zblat3_3m cblat3_3m
|
|
ifneq ($(CROSS), 1)
|
|
rm -f ?BLAT3_3M.SUMM
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3_3m < ./cblat3_3m.dat
|
|
@$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
|
|
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3_3m < ./zblat3_3m.dat
|
|
@$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
|
|
ifdef SMP
|
|
rm -f ?BLAT3_3M.SUMM
|
|
ifeq ($(USE_OPENMP), 1)
|
|
OMP_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat
|
|
@$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
|
|
OMP_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat
|
|
@$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
|
|
else
|
|
OPENBLAS_NUM_THREADS=2 ./cblat3_3m < ./cblat3_3m.dat
|
|
@$(GREP) -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || exit 0
|
|
OPENBLAS_NUM_THREADS=2 ./zblat3_3m < ./zblat3_3m.dat
|
|
@$(GREP) -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || exit 0
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|
|
|
|
|
|
FLDFLAGS = $(FFLAGS:-fPIC=) $(LDFLAGS)
|
|
|
|
|
|
ifeq ($(USE_OPENMP), 1)
|
|
ifeq ($(F_COMPILER), GFORTRAN)
|
|
ifeq ($(C_COMPILER), CLANG)
|
|
CEXTRALIB += -lomp
|
|
endif
|
|
endif
|
|
ifeq ($(F_COMPILER), NAG)
|
|
CEXTRALIB = -lgomp
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(BUILD_SINGLE),1)
|
|
sblat1 : sblat1.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o sblat1 sblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
sblat2 : sblat2.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o sblat2 sblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
sblat3 : sblat3.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o sblat3 sblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
endif
|
|
|
|
ifeq ($(BUILD_DOUBLE),1)
|
|
dblat1 : dblat1.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o dblat1 dblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
dblat2 : dblat2.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o dblat2 dblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
dblat3 : dblat3.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o dblat3 dblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
else
|
|
dblat2:
|
|
dblat3:
|
|
endif
|
|
|
|
|
|
qblat1 : qblat1.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o qblat1 qblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
cblat1 : cblat1.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o cblat1 cblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
cblat2 : cblat2.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o cblat2 cblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
cblat3 : cblat3.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o cblat3 cblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
endif
|
|
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
zblat1 : zblat1.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o zblat1 zblat1.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
zblat2 : zblat2.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o zblat2 zblat2.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
|
|
zblat3 : zblat3.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o zblat3 zblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
endif
|
|
|
|
ifeq ($(BUILD_BFLOAT16),1)
|
|
test_sbgemm : compare_sgemm_sbgemm.c ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o test_sbgemm compare_sgemm_sbgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
endif
|
|
|
|
ifeq ($(BUILD_COMPLEX),1)
|
|
cblat3_3m : cblat3_3m.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o cblat3_3m cblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
endif
|
|
|
|
ifeq ($(BUILD_COMPLEX16),1)
|
|
zblat3_3m : zblat3_3m.$(SUFFIX) ../$(LIBNAME)
|
|
$(FC) $(FLDFLAGS) -o zblat3_3m zblat3_3m.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
|
|
endif
|
|
|
|
|
|
|
|
clean:
|
|
@rm -f *.$(SUFFIX) *.$(PSUFFIX) gmon.$(SUFFIX)ut *.SUMM *.cxml *.exe *.pdb *.dwf \
|
|
sblat1 dblat1 cblat1 zblat1 \
|
|
sblat2 dblat2 cblat2 zblat2 \
|
|
test_sbgemm sblat3 dblat3 cblat3 zblat3 \
|
|
sblat1p dblat1p cblat1p zblat1p \
|
|
sblat2p dblat2p cblat2p zblat2p \
|
|
sblat3p dblat3p cblat3p zblat3p \
|
|
zblat3_3m zblat3_3mp \
|
|
cblat3_3m cblat3_3mp \
|
|
*.stackdump *.dll
|
|
|
|
libs:
|
|
|
|
prof:
|
|
|
|
quick :
|
|
$(MAKE) -C $(TOPDIR) libs
|
|
|
|
# include ../Makefile.tail
|