Merge pull request #3320 from martin-frbg/issue3318

Empirical workaround for numpy SVD NaN problem from issue 3318
This commit is contained in:
Martin Kroeker 2021-07-22 21:28:50 +02:00 committed by GitHub
commit 3a7955cd93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 10 deletions

View File

@ -124,9 +124,9 @@ if (NOT DYNAMIC_ARCH)
if (HAVE_AVX) if (HAVE_AVX)
set (CCOMMON_OPT "${CCOMMON_OPT} -mavx") set (CCOMMON_OPT "${CCOMMON_OPT} -mavx")
endif () endif ()
if (HAVE_FMA3) # if (HAVE_FMA3)
set (CCOMMON_OPT "${CCOMMON_OPT} -mfma") #set (CCOMMON_OPT "${CCOMMON_OPT} -mfma")
endif () #endif ()
if (HAVE_SSE) if (HAVE_SSE)
set (CCOMMON_OPT "${CCOMMON_OPT} -msse") set (CCOMMON_OPT "${CCOMMON_OPT} -msse")
endif () endif ()

View File

@ -186,11 +186,11 @@ if (DEFINED TARGET)
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2")
endif() endif()
endif() endif()
if (DEFINED HAVE_FMA3) # if (DEFINED HAVE_FMA3)
if (NOT NO_AVX2) # if (NOT NO_AVX2)
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mfma") # set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mfma")
endif() # endif()
endif() # endif()
if (DEFINED HAVE_SSE) if (DEFINED HAVE_SSE)
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse") set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse")
endif() endif()

View File

@ -311,7 +311,15 @@ function(GenerateNamedObjects sources_in)
configure_file(${new_source_file}.tmp ${new_source_file} COPYONLY) configure_file(${new_source_file}.tmp ${new_source_file} COPYONLY)
file(REMOVE ${new_source_file}.tmp) file(REMOVE ${new_source_file}.tmp)
list(APPEND SRC_LIST_OUT ${new_source_file}) list(APPEND SRC_LIST_OUT ${new_source_file})
message (STATUS ${new_source_file})
if (DEFINED HAVE_FMA3)
if ( ${new_source_file} MATCHES "(s|d?)rot_k.*c")
set_source_files_properties(${new_source_file} PROPERTIES COMPILE_OPTIONS "-mfma")
endif ()
if ( ${new_source_file} MATCHES "dgemv_t_k.*c")
set_source_files_properties(${new_source_file} PROPERTIES COMPILE_OPTIONS "-mfma")
endif ()
endif ()
endforeach () endforeach ()
endforeach () endforeach ()

View File

@ -1,3 +1,10 @@
FMAFLAG=
ifndef OLDGCC
ifdef HAVE_FMA3
FMAFLAG = -mfma
endif
endif
### GEMV ### ### GEMV ###
ifndef SGEMVNKERNEL ifndef SGEMVNKERNEL
@ -263,7 +270,7 @@ $(KDIR)dgemv_n$(TSUFFIX).$(SUFFIX) $(KDIR)dgemv_n$(TSUFFIX).$(PSUFFIX) : $(KER
$(CC) -c $(CFLAGS) -DDOUBLE -UCOMPLEX -UTRANS $< -o $@ $(CC) -c $(CFLAGS) -DDOUBLE -UCOMPLEX -UTRANS $< -o $@
$(KDIR)dgemv_t$(TSUFFIX).$(SUFFIX) $(KDIR)dgemv_t$(TSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DGEMVTKERNEL) $(TOPDIR)/common.h $(GEMVDEP) $(KDIR)dgemv_t$(TSUFFIX).$(SUFFIX) $(KDIR)dgemv_t$(TSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DGEMVTKERNEL) $(TOPDIR)/common.h $(GEMVDEP)
$(CC) -c $(CFLAGS) -DDOUBLE -UCOMPLEX -DTRANS $< -o $@ $(CC) -c $(CFLAGS) $(FMAFLAG) -DDOUBLE -UCOMPLEX -DTRANS $< -o $@
endif endif
$(KDIR)qgemv_n$(TSUFFIX).$(SUFFIX) $(KDIR)qgemv_n$(TSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QGEMVNKERNEL) $(KDIR)qgemv_n$(TSUFFIX).$(SUFFIX) $(KDIR)qgemv_n$(TSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QGEMVNKERNEL)