# HG changeset patch # User Markus Mützel # Date 1641746784 -3600 # Node ID e220e8374d0841f6259599bf89756e9bcacd7276 # Parent 36680ae529a94307981e555bcbe3258858717c34 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 diff -r 36680ae529a9 -r e220e8374d08 src/openblas-1-skylakex.patch --- 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 -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 -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 -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 -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 +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