diff --git a/Makefile.prebuild b/Makefile.prebuild index d6395da7b..399db956f 100644 --- a/Makefile.prebuild +++ b/Makefile.prebuild @@ -3,6 +3,10 @@ export BINARY export USE_OPENMP +ifdef DYNAMIC_ARCH +override HOST_CFLAGS += -DDYNAMIC_ARCH +endif + ifdef TARGET_CORE TARGET_MAKE = Makefile_kernel.conf TARGET_CONF = config_kernel.h diff --git a/Makefile.system b/Makefile.system index 9203f49cb..438a8148a 100644 --- a/Makefile.system +++ b/Makefile.system @@ -277,7 +277,7 @@ HAVE_GAS := $(shell $(AS) -v < /dev/null 2>&1 | grep GNU 2>&1 >/dev/null ; echo GETARCH_FLAGS += -DHAVE_GAS=$(HAVE_GAS) # Generating Makefile.conf and config.h -DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.prebuild CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" HOST_CFLAGS="$(GETARCH_FLAGS)" CFLAGS="$(CFLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) ONLY_CBLAS=$(ONLY_CBLAS) TARGET=$(TARGET) all) +DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.prebuild CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" HOST_CFLAGS="$(GETARCH_FLAGS)" CFLAGS="$(CFLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) DYNAMIC_ARCH=$(DYNAMIC_ARCH) TARGET_CORE=$(TARGET_CORE) ONLY_CBLAS=$(ONLY_CBLAS) TARGET=$(TARGET) all) ifndef TARGET_CORE include $(TOPDIR)/Makefile.conf diff --git a/param.h b/param.h index 6403e94a2..e6bfb1d91 100644 --- a/param.h +++ b/param.h @@ -1669,10 +1669,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #else #define SGEMM_DEFAULT_UNROLL_M 16 -#ifndef DYNAMIC_ARCH -#define DGEMM_DEFAULT_UNROLL_M 16 -#else +#ifdef DYNAMIC_ARCH #define DGEMM_DEFAULT_UNROLL_M 4 +#else +#define DGEMM_DEFAULT_UNROLL_M 16 #endif #define QGEMM_DEFAULT_UNROLL_M 2 #define CGEMM_DEFAULT_UNROLL_M 8 @@ -1680,10 +1680,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define XGEMM_DEFAULT_UNROLL_M 1 #define SGEMM_DEFAULT_UNROLL_N 4 -#ifndef DYNAMIC_ARCH -#define DGEMM_DEFAULT_UNROLL_N 2 -#else +#ifdef DYNAMIC_ARCH #define DGEMM_DEFAULT_UNROLL_N 8 +#else +#define DGEMM_DEFAULT_UNROLL_N 2 #endif #define QGEMM_DEFAULT_UNROLL_N 2 #define CGEMM_DEFAULT_UNROLL_N 2 @@ -1718,17 +1718,29 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #else #define SGEMM_DEFAULT_P 448 +#ifndef DYNAMIC_ARCH #define DGEMM_DEFAULT_P 192 +#else +#define DGEMM_DEFAULT_P 384 +#endif #define CGEMM_DEFAULT_P 384 #define ZGEMM_DEFAULT_P 256 #define SGEMM_DEFAULT_Q 448 +#ifndef DYNAMIC_ARCH #define DGEMM_DEFAULT_Q 384 +#else +#define DGEMM_DEFAULT_Q 168 +#endif #define CGEMM_DEFAULT_Q 192 #define ZGEMM_DEFAULT_Q 128 #define SGEMM_DEFAULT_R sgemm_r +#ifndef DYNAMIC_ARCH #define DGEMM_DEFAULT_R 8640 +#else +#define DGEMM_DEFAULT_R 13824 +#endif #define CGEMM_DEFAULT_R cgemm_r #define ZGEMM_DEFAULT_R zgemm_r