view src/openblas-1-skylakex.patch @ 6049:e220e8374d08

OpenBLAS: Update patch with changes applied upstream. * src/openblas-1-skylakex.patch: Update with changes from upstream. See: https://github.com/xianyi/OpenBLAS/pull/3510
author Markus Mützel <markus.muetzel@gmx.de>
date Sun, 09 Jan 2022 17:46:24 +0100
parents 4baf22dc7f2d
children
line wrap: on
line source

From 15d4b379138b9a5b84a2fbc2d37cb47b33efdeec Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sat, 8 Jan 2022 23:48:13 +0100
Subject: [PATCH 1/3] SkylakeX: match parameters to dgemm kernels for
 dyn/non-dyn

---
 param.h | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/param.h b/param.h
index 2dffaae3c..4155131f0 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
 

From f1ac59f20057cefe4dd45122954e2403f1330835 Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sat, 8 Jan 2022 23:48:58 +0100
Subject: [PATCH 2/3] Forward DYNAMIC_ARCH option to Makefile.prebuild

---
 Makefile.system | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile.system b/Makefile.system
index 97fdc3f91..7909f677a 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

From 2573ccfb2e02abec3f537479d65b58c4d6e746f3 Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sat, 8 Jan 2022 23:50:34 +0100
Subject: [PATCH 3/3] make DYNAMIC_ARCH option available to getarch_2nd/param.h

---
 Makefile.prebuild | 4 ++++
 1 file changed, 4 insertions(+)

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