changeset 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 36680ae529a9
children 94f0d0af14d2
files src/openblas-1-skylakex.patch
diffstat 1 files changed, 94 insertions(+), 103 deletions(-) [+]
line wrap: on
line diff
--- a/src/openblas-1-skylakex.patch	Sun Jan 09 07:52:02 2022 -0500
+++ b/src/openblas-1-skylakex.patch	Sun Jan 09 17:46:24 2022 +0100
@@ -1,129 +1,120 @@
-From b54b3bbdcc043dc839fcb5262c5239bb1548e02b Mon Sep 17 00:00:00 2001
+From 15d4b379138b9a5b84a2fbc2d37cb47b33efdeec Mon Sep 17 00:00:00 2001
 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
-Date: Fri, 24 Dec 2021 22:53:39 +0100
-Subject: [PATCH 01/10] Update param.h
-
----
- param.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/param.h b/param.h
-index 2dffaae3c..3d592c056 100644
---- a/param.h
-+++ b/param.h
-@@ -1670,7 +1670,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 
- #define SGEMM_DEFAULT_UNROLL_M 16
- #ifndef DYNAMIC_ARCH
--#define DGEMM_DEFAULT_UNROLL_M 16
-+#define DGEMM_DEFAULT_UNROLL_M 4
- #else
- #define DGEMM_DEFAULT_UNROLL_M 4
- #endif
-@@ -1681,7 +1681,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 
- #define SGEMM_DEFAULT_UNROLL_N 4
- #ifndef DYNAMIC_ARCH
--#define DGEMM_DEFAULT_UNROLL_N 2
-+#define DGEMM_DEFAULT_UNROLL_N 8
- #else
- #define DGEMM_DEFAULT_UNROLL_N 8
- #endif
-
-From e62e797d3adb796275114bd894262978f30d03dc Mon Sep 17 00:00:00 2001
-From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
-Date: Fri, 24 Dec 2021 22:54:40 +0100
-Subject: [PATCH 02/10] Update KERNEL.SKYLAKEX
+Date: Sat, 8 Jan 2022 23:48:13 +0100
+Subject: [PATCH 1/3] SkylakeX: match parameters to dgemm kernels for
+ dyn/non-dyn
 
 ---
- kernel/x86_64/KERNEL.SKYLAKEX | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/x86_64/KERNEL.SKYLAKEX b/kernel/x86_64/KERNEL.SKYLAKEX
-index d2d7de42a..c5a2fcecb 100644
---- a/kernel/x86_64/KERNEL.SKYLAKEX
-+++ b/kernel/x86_64/KERNEL.SKYLAKEX
-@@ -20,7 +20,7 @@ SGEMM_SMALL_K_B0_TN = sgemm_small_kernel_tn_skylakex.c
- SGEMM_SMALL_K_TT = sgemm_small_kernel_tt_skylakex.c
- SGEMM_SMALL_K_B0_TT = sgemm_small_kernel_tt_skylakex.c
- 
--ifndef DYNAMIC_ARCH
-+ifdef DYNAMIC_ARCHO
- DGEMMKERNEL    =  dgemm_kernel_16x2_skylakex.c
- DTRMMKERNEL    =  dgemm_kernel_16x2_skylakex.c
- DGEMMINCOPY    =  ../generic/gemm_ncopy_16.c
-
-From 892ed1e53b17bdc4e367ae0697ae9a995641dbf6 Mon Sep 17 00:00:00 2001
-From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
-Date: Sat, 25 Dec 2021 13:26:35 +0100
-Subject: [PATCH 03/10] Update param.h
-
----
- param.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
+ param.h | 24 ++++++++++++++++++------
+ 1 file changed, 18 insertions(+), 6 deletions(-)
 
 diff --git a/param.h b/param.h
-index 3d592c056..03ab214e2 100644
+index 2dffaae3c..4155131f0 100644
 --- a/param.h
 +++ b/param.h
-@@ -1670,9 +1670,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+@@ -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 4
-+#define DGEMM_DEFAULT_UNROLL_M 16
- #else
--#define DGEMM_DEFAULT_UNROLL_M 4
+-#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
-@@ -1681,9 +1681,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+@@ -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 8
-+#define DGEMM_DEFAULT_UNROLL_N 2
- #else
--#define DGEMM_DEFAULT_UNROLL_N 8
+-#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 d97a3e5a5f5b28cb5f3b8f5ce3fef05b0a81b715 Mon Sep 17 00:00:00 2001
+From f1ac59f20057cefe4dd45122954e2403f1330835 Mon Sep 17 00:00:00 2001
 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
-Date: Sat, 25 Dec 2021 13:27:49 +0100
-Subject: [PATCH 04/10] Update KERNEL.SKYLAKEX
+Date: Sat, 8 Jan 2022 23:48:58 +0100
+Subject: [PATCH 2/3] Forward DYNAMIC_ARCH option to Makefile.prebuild
 
 ---
- kernel/x86_64/KERNEL.SKYLAKEX | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
+ 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
 
-diff --git a/kernel/x86_64/KERNEL.SKYLAKEX b/kernel/x86_64/KERNEL.SKYLAKEX
-index c5a2fcecb..ba093d24b 100644
---- a/kernel/x86_64/KERNEL.SKYLAKEX
-+++ b/kernel/x86_64/KERNEL.SKYLAKEX
-@@ -20,19 +20,15 @@ SGEMM_SMALL_K_B0_TN = sgemm_small_kernel_tn_skylakex.c
- SGEMM_SMALL_K_TT = sgemm_small_kernel_tt_skylakex.c
- SGEMM_SMALL_K_B0_TT = sgemm_small_kernel_tt_skylakex.c
+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_ARCHO
++ifdef DYNAMIC_ARCH
++override HOST_CFLAGS += -DDYNAMIC_ARCH
++endif
 +
- DGEMMKERNEL    =  dgemm_kernel_16x2_skylakex.c
- DTRMMKERNEL    =  dgemm_kernel_16x2_skylakex.c
- DGEMMINCOPY    =  ../generic/gemm_ncopy_16.c
--DGEMMITCOPY    =  dgemm_tcopy_16_skylakex.c
-+DGEMMITCOPY    =  ../generic/gemm_tcopy_16.c
- DGEMMONCOPY    =  ../generic/gemm_ncopy_2.c
- DGEMMOTCOPY    =  ../generic/gemm_tcopy_2.c
- DTRSMKERNEL_RN =  ../generic/trsm_kernel_RN.c
--else
--DGEMMKERNEL    =  dgemm_kernel_4x8_skylakex_2.c
--DGEMMONCOPY    =  dgemm_ncopy_8_skylakex.c
--DGEMMOTCOPY    =  dgemm_tcopy_8_skylakex.c
--endif
-+
- DGEMM_SMALL_M_PERMIT = dgemm_small_kernel_permit_skylakex.c
- DGEMM_SMALL_K_NN = dgemm_small_kernel_nn_skylakex.c
- DGEMM_SMALL_K_B0_NN = dgemm_small_kernel_nn_skylakex.c
+ ifdef TARGET_CORE
+ TARGET_MAKE = Makefile_kernel.conf
+ TARGET_CONF = config_kernel.h