From 436e09b8b4e622f3e714ee090e419ff4d91a4bf183a59a931ab93b55f83e0664 Mon Sep 17 00:00:00 2001 From: Dmitry Roshchin Date: Thu, 1 Dec 2022 13:36:16 +0000 Subject: [PATCH] Accepting request 1039250 from home:eeich:branches:science - Update to v0.3.21: * general: - Updated the included LAPACK to Reference-LAPACK release 3.10.1 - when no Fortran compiler is available, OpenBLAS builds will now automatically - function LAPACKE_lsame is now annotated with the GCC attribute "const" to aid static analyzers - added USE_TLS to the list of options reported by the openblas_get_config() function - added SYMBOLPREFIX/SYMBOLSUFFIX handling for LAPACK 3.10.0 functions added in 0.3.20 - reverted OpenMP threadpool behaviour in the exec_blas call to its state before 0.3.11, that is the threadpool will no longer grow or shrink on demand as the overhead for this is too big at least with GNU OpenMP. The adaptive behaviour introduced in 0.3.11 can still be requested at runtime by setting the environment variable OMP_ADAPTIVE - worked around spurious STFSM/CTFSM errors reported by the LAPACK testsuite * x86_64: - fixed determination of compiler support for AVX512 and removed the 0.3.19 - workaround for building SKYLAKEX kernels on Sandybridge hardware - fixed compilation for the SKYLAKEX target with gcc 6 - fixed compilation of the SkyLakeX small matrix GEMM kernels with LLVM or ICC - added support for the Zhaoxin/Centaur KH40000 cpu - fixed a potential crash in the ZSYMV kernel used for all targets except generic * POWER: - worked around an overflow error in the POWER6 DNRM2 kernel - fixed compilation on PPC440 - fixed a performance regression in the level1 BLAS on POWER10 - fixed the POWER10 ZGEMM kernel - fixed singlethreaded builds for POWER10 - fixed compilation of the POWER10 DGEMV kernel with older gcc versions - enabled compilation of the BFLOAT16 kernels by default - enabled the small matrix kernels by default for DYNAMIC_ARCH builds - added a workaround for a miscompilation of the CDOT and ZDOT kernels by GCC 12 - Obsolete: OBS-URL: https://build.opensuse.org/request/show/1039250 OBS-URL: https://build.opensuse.org/package/show/science/openblas?expand=0&rev=146 --- ...-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch | 32 ------------ ...-others-parameter.c-in-DYNAMIC_BUILD.patch | 33 ------------- Fix-checks-for-AVX512-and-atomics.patch | 36 -------------- Handle-s390-correctly.patch | 39 +++++++++++++++ Link-library-with-z-noexecstack.patch | 24 +++++++++ OpenBLAS-0.3.20.tar.gz | 3 -- OpenBLAS-0.3.21.tar.gz | 3 ++ ...ong-definition-of-sbgemm_r-on-x86_64.patch | 26 ---------- ...ty-check-from-PR-1980-moved-to-build.patch | 33 ------------- ...-hard-coding-gcc-for-AVX512-checking.patch | 30 ------------ ...lasint-for-INTERFACE64-compatibility.patch | 30 ++++++++++++ ...o-from-c_check-when-building-getarch.patch | 28 ----------- openblas-noexecstack.patch | 28 ----------- openblas-s390.patch | 39 --------------- openblas.changes | 49 ++++++++++++++++++- openblas.spec | 22 ++++----- remove-spurious-loops.patch | 34 +++++++++++++ 17 files changed, 187 insertions(+), 302 deletions(-) delete mode 100644 Define-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch delete mode 100644 Do-not-include-symbols-defined-in-driver-others-parameter.c-in-DYNAMIC_BUILD.patch delete mode 100644 Fix-checks-for-AVX512-and-atomics.patch create mode 100644 Handle-s390-correctly.patch create mode 100644 Link-library-with-z-noexecstack.patch delete mode 100644 OpenBLAS-0.3.20.tar.gz create mode 100644 OpenBLAS-0.3.21.tar.gz delete mode 100644 Remove-extraneous-and-wrong-definition-of-sbgemm_r-on-x86_64.patch delete mode 100644 Revert-AVX512-capability-check-from-PR-1980-moved-to-build.patch delete mode 100644 Use-CC-and-full-command-line-instead-of-hard-coding-gcc-for-AVX512-checking.patch create mode 100644 Use-blasint-for-INTERFACE64-compatibility.patch delete mode 100644 Utilize-compiler-AVX512-capability-info-from-c_check-when-building-getarch.patch delete mode 100644 openblas-noexecstack.patch delete mode 100644 openblas-s390.patch create mode 100644 remove-spurious-loops.patch diff --git a/Define-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch b/Define-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch deleted file mode 100644 index 2d55329..0000000 --- a/Define-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Martin Kroeker -Date: Fri Feb 25 10:04:00 2022 +0100 -Subject: Define sbgemm_r to fix DYNAMIC_ARCH builds -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: d9894f45d30e82fd1491ae38477a1fcd79faeed1 -References: - - -Signed-off-by: Egbert Eich ---- - kernel/setparam-ref.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/kernel/setparam-ref.c b/kernel/setparam-ref.c -index fe796be6..a81b32dd 100644 ---- a/kernel/setparam-ref.c -+++ b/kernel/setparam-ref.c -@@ -1824,6 +1824,13 @@ static void init_parameter(void) { - fprintf(stderr, "L2 = %8d DGEMM_P .. %d\n", l2, TABLE_NAME.dgemm_p); - #endif - -+#if BUILD_BFLOAT16==1 -+ TABLE_NAME.sbgemm_r = (((BUFFER_SIZE - -+ ((TABLE_NAME.sbgemm_p * TABLE_NAME.sbgemm_q * 4 + TABLE_NAME.offsetA -+ + TABLE_NAME.align) & ~TABLE_NAME.align) -+ ) / (TABLE_NAME.sbgemm_q * 4) - 15) & ~15); -+#endif -+ - #if BUILD_SINGLE==1 - TABLE_NAME.sgemm_r = (((BUFFER_SIZE - - ((TABLE_NAME.sgemm_p * TABLE_NAME.sgemm_q * 4 + TABLE_NAME.offsetA diff --git a/Do-not-include-symbols-defined-in-driver-others-parameter.c-in-DYNAMIC_BUILD.patch b/Do-not-include-symbols-defined-in-driver-others-parameter.c-in-DYNAMIC_BUILD.patch deleted file mode 100644 index 6190a6b..0000000 --- a/Do-not-include-symbols-defined-in-driver-others-parameter.c-in-DYNAMIC_BUILD.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Egbert Eich -Date: Sun Mar 13 10:57:59 2022 +0100 -Subject: Do not include symbols defined in driver/others/parameter.c in DYNAMIC_BUILD -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: 53cd07b0201c94ea50a499867382dcf39d1b8766 -References: - -driver/others/parameter.c does not get build during DYNAMIC_BUILD, thus, -do not declare its symbols. This will make the build fail early and in -an obvious way if functions are trying to use these symbols. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - common_macro.h | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/common_macro.h b/common_macro.h -index 9826f180..d2fa822c 100644 ---- a/common_macro.h -+++ b/common_macro.h -@@ -2610,8 +2610,9 @@ - #endif - - #ifndef ASSEMBLER --#if defined(ARCH_X86) || defined(ARCH_X86_64) || defined(ARCH_IA64) || defined(ARCH_MIPS64) || defined(ARCH_ARM64)\ --|| defined(ARCH_LOONGARCH64) || defined(ARCH_E2K) -+#if !defined(DYNAMIC_ARCH) \ -+ && (defined(ARCH_X86) || defined(ARCH_X86_64) || defined(ARCH_IA64) || defined(ARCH_MIPS64) || defined(ARCH_ARM64) \ -+ || defined(ARCH_LOONGARCH64) || defined(ARCH_E2K)) - extern BLASLONG gemm_offset_a; - extern BLASLONG gemm_offset_b; - extern BLASLONG sbgemm_p; diff --git a/Fix-checks-for-AVX512-and-atomics.patch b/Fix-checks-for-AVX512-and-atomics.patch deleted file mode 100644 index 8d28c97..0000000 --- a/Fix-checks-for-AVX512-and-atomics.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Martin Kroeker -Date: Wed Mar 23 15:48:58 2022 +0100 -Subject: Fix checks for AVX512 and atomics -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: c87a4dbf35c809ebe6bc88c7d8dce8f2e7b135ea -References: - - -Signed-off-by: Egbert Eich ---- - c_check | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/c_check b/c_check -index 999f5a7a..e10ddfeb 100644 ---- a/c_check -+++ b/c_check -@@ -254,7 +254,7 @@ if (($architecture eq "x86") || ($architecture eq "x86_64")) { - # $tmpf = new File::Temp( UNLINK => 1 ); - ($fh,$tmpf) = tempfile( SUFFIX => '.c' , UNLINK => 1 ); - $code = '"vbroadcastss -4 * 4(%rsi), %zmm2"'; -- print $tmpf "#include \n\nint main(void){ __asm__ volatile($code); }\n"; -+ print $fh "#include \n\nint main(void){ __asm__ volatile($code); }\n"; - $args = " -march=skylake-avx512 -c -o $tmpf.o $tmpf"; - if ($compiler eq "PGI") { - $args = " -tp skylake -c -o $tmpf.o $tmpf"; -@@ -278,7 +278,7 @@ if ($data =~ /HAVE_C11/) { - $c11_atomics = 0; - } else { - ($fh,$tmpf) = tempfile( SUFFIX => '.c' , UNLINK => 1 ); -- print $tmpf "#include \nint main(void){}\n"; -+ print $fh "#include \nint main(void){}\n"; - $args = " -c -o $tmpf.o $tmpf"; - my @cmd = ("$compiler_name $flags $args >/dev/null 2>/dev/null"); - system(@cmd) == 0; diff --git a/Handle-s390-correctly.patch b/Handle-s390-correctly.patch new file mode 100644 index 0000000..09a4b49 --- /dev/null +++ b/Handle-s390-correctly.patch @@ -0,0 +1,39 @@ +From: Egbert Eich +Date: Wed Nov 30 20:14:53 2022 +0100 +Subject: Handle s390 correctly +Patch-mainline: Not yet +Git-commit: f1761f16899756e4da71df35b82772bcbcc33460 +References: + +Signed-off-by: Egbert Eich +Signed-off-by: Egbert Eich +--- + c_check | 2 +- + ctest.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) +diff --git a/c_check b/c_check +index 01d4f4a7..7db8bb42 100755 +--- a/c_check ++++ b/c_check +@@ -11,7 +11,7 @@ case "$hostarch" in + arm*) [ "$hostarch" = "arm64" ] || hostarch='arm' ;; + aarch64) hostarch=arm64 ;; + powerpc*|ppc*) hostarch=power ;; +- s390x) hostarch=zarch ;; ++ s390*) hostarch=zarch ;; + esac + + makefile="$1" +diff --git a/ctest.c b/ctest.c +index df628b1d..f09571b1 100644 +--- a/ctest.c ++++ b/ctest.c +@@ -121,7 +121,7 @@ ARCH_X86_64 + ARCH_POWER + #endif + +-#if defined(__s390x__) || defined(__zarch__) ++#if defined(__s390x__) || defined(__s390__) || defined(__zarch__) + ARCH_ZARCH + #endif + diff --git a/Link-library-with-z-noexecstack.patch b/Link-library-with-z-noexecstack.patch new file mode 100644 index 0000000..3a4d998 --- /dev/null +++ b/Link-library-with-z-noexecstack.patch @@ -0,0 +1,24 @@ +From: Egbert Eich +Date: Wed Nov 30 20:16:21 2022 +0100 +Subject: Link library with -z,noexecstack +Patch-mainline: Not yet +Git-commit: adddc0eadc81bcd29c48594793cb33eac0edb572 +References: + +Signed-off-by: Egbert Eich +Signed-off-by: Egbert Eich +--- + exports/Makefile | 1 + + 1 file changed, 1 insertion(+) +diff --git a/exports/Makefile b/exports/Makefile +index d8173534..a23fbc7f 100644 +--- a/exports/Makefile ++++ b/exports/Makefile +@@ -193,6 +193,7 @@ else ifeq ($(F_COMPILER), FLANG) + else + ifneq ($(C_COMPILER), LSB) + $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ ++ -Wl,-z,noexecstack \ + -Wl,--whole-archive $< -Wl,--no-whole-archive \ + -Wl,-soname,$(INTERNALNAME) $(EXTRALIB) + $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK. diff --git a/OpenBLAS-0.3.20.tar.gz b/OpenBLAS-0.3.20.tar.gz deleted file mode 100644 index f1ac2f6..0000000 --- a/OpenBLAS-0.3.20.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8495c9affc536253648e942908e88e097f2ec7753ede55aca52e5dead3029e3c -size 12742441 diff --git a/OpenBLAS-0.3.21.tar.gz b/OpenBLAS-0.3.21.tar.gz new file mode 100644 index 0000000..8607ebe --- /dev/null +++ b/OpenBLAS-0.3.21.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca +size 23729571 diff --git a/Remove-extraneous-and-wrong-definition-of-sbgemm_r-on-x86_64.patch b/Remove-extraneous-and-wrong-definition-of-sbgemm_r-on-x86_64.patch deleted file mode 100644 index 9c5de9c..0000000 --- a/Remove-extraneous-and-wrong-definition-of-sbgemm_r-on-x86_64.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Martin Kroeker -Date: Wed Mar 23 20:05:32 2022 +0100 -Subject: Remove extraneous (and wrong) definition of sbgemm_r on x86_64 -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: 40302558ed3d3c3f100e96dd042a5996c3d16bbd -References: - - -Signed-off-by: Egbert Eich ---- - kernel/setparam-ref.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/kernel/setparam-ref.c b/kernel/setparam-ref.c -index a81b32dd..9f5d34d9 100644 ---- a/kernel/setparam-ref.c -+++ b/kernel/setparam-ref.c -@@ -1239,7 +1239,6 @@ static void init_parameter(void) { - - #ifdef BUILD_BFLOAT16 - TABLE_NAME.sbgemm_p = SBGEMM_DEFAULT_P; -- TABLE_NAME.sbgemm_r = SBGEMM_DEFAULT_R; - TABLE_NAME.sbgemm_q = SBGEMM_DEFAULT_Q; - #endif - #if (BUILD_SINGLE==1) || (BUILD_COMPLEX==1) diff --git a/Revert-AVX512-capability-check-from-PR-1980-moved-to-build.patch b/Revert-AVX512-capability-check-from-PR-1980-moved-to-build.patch deleted file mode 100644 index ff48226..0000000 --- a/Revert-AVX512-capability-check-from-PR-1980-moved-to-build.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Martin Kroeker -Date: Wed Mar 23 15:22:13 2022 +0100 -Subject: Revert AVX512 capability check from PR #1980 (moved to build) -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: 93a81856ae6a34c4329054744237d46ed347ccec -References: - - -Signed-off-by: Egbert Eich ---- - getarch.c | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/getarch.c b/getarch.c -index 00e544bc..e49eac1a 100644 ---- a/getarch.c -+++ b/getarch.c -@@ -94,14 +94,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #include - #endif - --#if defined(__x86_64__) || defined(_M_X64) --#if (( defined(__GNUC__) && __GNUC__ > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) --#else --#ifndef NO_AVX512 --#define NO_AVX512 --#endif --#endif --#endif - /* #define FORCE_P2 */ - /* #define FORCE_KATMAI */ - /* #define FORCE_COPPERMINE */ diff --git a/Use-CC-and-full-command-line-instead-of-hard-coding-gcc-for-AVX512-checking.patch b/Use-CC-and-full-command-line-instead-of-hard-coding-gcc-for-AVX512-checking.patch deleted file mode 100644 index 2765653..0000000 --- a/Use-CC-and-full-command-line-instead-of-hard-coding-gcc-for-AVX512-checking.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Egbert Eich -Date: Mon Mar 28 08:14:52 2022 +0200 -Subject: Use CC and full command line instead of hard-coding gcc for AVX512 checking -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: 0b69fa6ddf7fc6d92bc42ef085f39337a4489f3c -References: - -Hard-coding gcc may not provide incorrect results when a different compiler -for the target build is used. To remain in sync with the main call to c_check, -pass the full command line. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - Makefile.prebuild | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/Makefile.prebuild b/Makefile.prebuild -index 4dad74d6..5e8874d4 100644 ---- a/Makefile.prebuild -+++ b/Makefile.prebuild -@@ -71,7 +71,7 @@ endif - - - getarch : getarch.c cpuid.S dummy $(CPUIDEMU) -- avx512=$$(perl c_check - - gcc | grep NO_AVX512); \ -+ avx512=$$(perl c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \ - $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU) - - getarch_2nd : getarch_2nd.c config.h dummy diff --git a/Use-blasint-for-INTERFACE64-compatibility.patch b/Use-blasint-for-INTERFACE64-compatibility.patch new file mode 100644 index 0000000..3e7704e --- /dev/null +++ b/Use-blasint-for-INTERFACE64-compatibility.patch @@ -0,0 +1,30 @@ +From: Martin Kroeker +Date: Mon Aug 8 14:52:10 2022 +0200 +Subject: Use blasint for INTERFACE64 compatibility +Patch-mainline: Not yet +Git-repo: https://github.com/xianyi/OpenBLAS +Git-commit: d9dc015cfc78fc32f555995a89d6957ef0184ea2 +References: + + +Signed-off-by: Egbert Eich +--- + test/compare_sgemm_sbgemm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/compare_sgemm_sbgemm.c b/test/compare_sgemm_sbgemm.c +index a2c358cf..d4b59145 100644 +--- a/test/compare_sgemm_sbgemm.c ++++ b/test/compare_sgemm_sbgemm.c +@@ -76,9 +76,9 @@ float16to32 (bfloat16_bits f16) + int + main (int argc, char *argv[]) + { +- int m, n, k; ++ blasint m, n, k; + int i, j, l; +- int x; ++ blasint x; + int ret = 0; + int loop = 100; + char transA = 'N', transB = 'N'; diff --git a/Utilize-compiler-AVX512-capability-info-from-c_check-when-building-getarch.patch b/Utilize-compiler-AVX512-capability-info-from-c_check-when-building-getarch.patch deleted file mode 100644 index e94d6db..0000000 --- a/Utilize-compiler-AVX512-capability-info-from-c_check-when-building-getarch.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Martin Kroeker -Date: Wed Mar 23 15:19:55 2022 +0100 -Subject: Utilize compiler AVX512 capability info from c_check when building getarch -Patch-mainline: Not yet -Git-repo: https://github.com/xianyi/OpenBLAS -Git-commit: 9fbeb88fb87dcc418c9ef01c5f24c85029dfbbef -References: - - -Signed-off-by: Egbert Eich ---- - Makefile.prebuild | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile.prebuild b/Makefile.prebuild -index 399db956..4dad74d6 100644 ---- a/Makefile.prebuild -+++ b/Makefile.prebuild -@@ -71,7 +71,8 @@ endif - - - getarch : getarch.c cpuid.S dummy $(CPUIDEMU) -- $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) -o $(@F) getarch.c cpuid.S $(CPUIDEMU) -+ avx512=$$(perl c_check - - gcc | grep NO_AVX512); \ -+ $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU) - - getarch_2nd : getarch_2nd.c config.h dummy - ifndef TARGET_CORE diff --git a/openblas-noexecstack.patch b/openblas-noexecstack.patch deleted file mode 100644 index 3261bab..0000000 --- a/openblas-noexecstack.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: OpenBLAS-0.3.14/exports/Makefile -=================================================================== ---- OpenBLAS-0.3.14.orig/exports/Makefile -+++ OpenBLAS-0.3.14/exports/Makefile -@@ -179,6 +179,7 @@ else ifeq ($(F_COMPILER), FLANG) - else - ifneq ($(C_COMPILER), LSB) - $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ -+ -Wl,-z,noexecstack \ - -Wl,--whole-archive $< -Wl,--no-whole-archive \ - -Wl,-soname,$(INTERNALNAME) $(EXTRALIB) - $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK. -@@ -207,6 +208,7 @@ else - ../$(LIBSONAME) : ../$(LIBNAME).renamed linktest.c - endif - $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ -+ -Wl,-z,noexecstack \ - -Wl,--whole-archive $< -Wl,--no-whole-archive \ - $(FEXTRALIB) $(EXTRALIB) - $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK. -@@ -226,6 +228,7 @@ ifeq ($(OSNAME), SunOS) - - so : ../$(LIBSONAME) - $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ -+ -Wl,-z,noexecstack \ - -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive $(EXTRALIB) - $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK. - rm -f linktest diff --git a/openblas-s390.patch b/openblas-s390.patch deleted file mode 100644 index 2def1b0..0000000 --- a/openblas-s390.patch +++ /dev/null @@ -1,39 +0,0 @@ -Index: OpenBLAS-0.3.14/c_check -=================================================================== ---- OpenBLAS-0.3.14.orig/c_check -+++ OpenBLAS-0.3.14/c_check -@@ -12,7 +12,7 @@ $hostarch = "x86_64" if ($hostarch eq "a - $hostarch = "arm" if ($hostarch ne "arm64" && $hostarch =~ /^arm.*/); - $hostarch = "arm64" if ($hostarch eq "aarch64"); - $hostarch = "power" if ($hostarch =~ /^(powerpc|ppc).*/); --$hostarch = "zarch" if ($hostarch eq "s390x"); -+$hostarch = "zarch" if ($hostarch =~ /^s390/); - - #$tmpf = new File::Temp( UNLINK => 1 ); - $binary = $ENV{"BINARY"}; -Index: OpenBLAS-0.3.14/ctest.c -=================================================================== ---- OpenBLAS-0.3.14.orig/ctest.c -+++ OpenBLAS-0.3.14/ctest.c -@@ -117,7 +117,7 @@ ARCH_X86_64 - ARCH_POWER - #endif - --#if defined(__s390x__) || defined(__zarch__) -+#if defined(__s390x__) || defined(__s390__) || defined(__zarch__) - ARCH_ZARCH - #endif - -Index: OpenBLAS-0.3.14/getarch.c -=================================================================== ---- OpenBLAS-0.3.14.orig/getarch.c -+++ OpenBLAS-0.3.14/getarch.c -@@ -1333,7 +1333,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF - #define OPENBLAS_SUPPORTED - #endif - --#if defined(__zarch__) || defined(__s390x__) -+#if defined(__zarch__) || defined(__s390x__) || defined(__s390__) - #define ZARCH - #include "cpuid_zarch.c" - #define OPENBLAS_SUPPORTED diff --git a/openblas.changes b/openblas.changes index 93aae50..5060c84 100644 --- a/openblas.changes +++ b/openblas.changes @@ -1,3 +1,50 @@ +------------------------------------------------------------------- +Wed Nov 30 19:24:20 UTC 2022 - Egbert Eich + +- Update to v0.3.21: + * general: + - Updated the included LAPACK to Reference-LAPACK release 3.10.1 + - when no Fortran compiler is available, OpenBLAS builds will now automatically + - function LAPACKE_lsame is now annotated with the GCC attribute "const" to aid static analyzers + - added USE_TLS to the list of options reported by the openblas_get_config() function + - added SYMBOLPREFIX/SYMBOLSUFFIX handling for LAPACK 3.10.0 functions added in 0.3.20 + - reverted OpenMP threadpool behaviour in the exec_blas call to its state before 0.3.11, that is + the threadpool will no longer grow or shrink on demand as the overhead for this is too big at least with + GNU OpenMP. The adaptive behaviour introduced in 0.3.11 can still be requested at runtime by setting + the environment variable OMP_ADAPTIVE + - worked around spurious STFSM/CTFSM errors reported by the LAPACK testsuite + * x86_64: + - fixed determination of compiler support for AVX512 and removed the 0.3.19 + - workaround for building SKYLAKEX kernels on Sandybridge hardware + - fixed compilation for the SKYLAKEX target with gcc 6 + - fixed compilation of the SkyLakeX small matrix GEMM kernels with LLVM or ICC + - added support for the Zhaoxin/Centaur KH40000 cpu + - fixed a potential crash in the ZSYMV kernel used for all targets except generic + * POWER: + - worked around an overflow error in the POWER6 DNRM2 kernel + - fixed compilation on PPC440 + - fixed a performance regression in the level1 BLAS on POWER10 + - fixed the POWER10 ZGEMM kernel + - fixed singlethreaded builds for POWER10 + - fixed compilation of the POWER10 DGEMV kernel with older gcc versions + - enabled compilation of the BFLOAT16 kernels by default + - enabled the small matrix kernels by default for DYNAMIC_ARCH builds + - added a workaround for a miscompilation of the CDOT and ZDOT kernels by GCC 12 +- Obsolete: + * Define-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch + * Remove-extraneous-and-wrong-definition-of-sbgemm_r-on-x86_64.patch + * Do-not-include-symbols-defined-in-driver-others-parameter.c-in-DYNAMIC_BUILD.patch + * Utilize-compiler-AVX512-capability-info-from-c_check-when-building-getarch.patch + * Revert-AVX512-capability-check-from-PR-1980-moved-to-build.patch + * Fix-checks-for-AVX512-and-atomics.patch + * Use-CC-and-full-command-line-instead-of-hard-coding-gcc-for-AVX512-checking.patch +- Updated/renamed: + * openblas-noexecstack.patch to Link-library-with-z-noexecstack.patch + * openblas-s390.patch to Handle-s390-correctly.patch +- Added (see https://github.com/xianyi/OpenBLAS/issues/3738): + * remove-spurious-loops.patch + * Use-blasint-for-INTERFACE64-compatibility.patch + ------------------------------------------------------------------- Wed Sep 14 06:08:40 UTC 2022 - Egbert Eich @@ -42,7 +89,7 @@ Mon Apr 4 08:57:16 UTC 2022 - Egbert Eich ------------------------------------------------------------------- Wed Mar 30 12:00:30 UTC 2022 - Egbert Eich -- Build PPC64LE libraries with the lastest gcc available to +- Build PPC64LE libraries with the latest gcc available to take advantage of instruction sets in later CPUs used in the CPU specific kernels (jsc#SLE-18143, bsc#1197721). For fortran use the stock compiler to avoid compatibility diff --git a/openblas.spec b/openblas.spec index 1bd4787..d53e85d 100644 --- a/openblas.spec +++ b/openblas.spec @@ -18,8 +18,8 @@ %global flavor @BUILD_FLAVOR@%{nil} -%define _vers 0_3_20 -%define vers 0.3.20 +%define _vers 0_3_21 +%define vers 0.3.21 %define pname openblas %bcond_with ringdisabled @@ -133,6 +133,9 @@ ExclusiveArch: do_not_build %ifarch ppc64le x86_64 s390x %if 0%{?c_f_ver} > 9 %else +%if 0%{?sle_version} == 150500 +%define cc_v 12 +%endif %if 0%{?sle_version} == 150400 %define cc_v 11 %endif @@ -181,18 +184,11 @@ URL: http://www.openblas.net Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz#/OpenBLAS-%{version}.tar.gz Source1: README.SUSE Source2: README.HPC.SUSE -Patch1: Define-sbgemm_r-to-fix-DYNAMIC_ARCH-builds.patch -Patch2: Remove-extraneous-and-wrong-definition-of-sbgemm_r-on-x86_64.patch -Patch3: Do-not-include-symbols-defined-in-driver-others-parameter.c-in-DYNAMIC_BUILD.patch -Patch4: Utilize-compiler-AVX512-capability-info-from-c_check-when-building-getarch.patch -Patch5: Revert-AVX512-capability-check-from-PR-1980-moved-to-build.patch -Patch6: Fix-checks-for-AVX512-and-atomics.patch -Patch7: Use-CC-and-full-command-line-instead-of-hard-coding-gcc-for-AVX512-checking.patch - -# PATCH-FIX-UPSTREAM openblas-noexecstack.patch -Patch101: openblas-noexecstack.patch +Patch1: Use-blasint-for-INTERFACE64-compatibility.patch +Patch2: remove-spurious-loops.patch +#Patch101: Link-library-with-z-noexecstack.patch # PATCH port -Patch102: openblas-s390.patch +Patch102: Handle-s390-correctly.patch Patch103: openblas-ppc64be_up2_p8.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/remove-spurious-loops.patch b/remove-spurious-loops.patch new file mode 100644 index 0000000..7fc8260 --- /dev/null +++ b/remove-spurious-loops.patch @@ -0,0 +1,34 @@ +From: Martin Kroeker +Date: Mon Aug 8 17:09:45 2022 +0200 +Subject: remove spurious loops +Patch-mainline: Not yet +Git-repo: https://github.com/xianyi/OpenBLAS +Git-commit: 3d338b57de1837f1e2264a1262a9ee9203f31c6c +References: + + +Signed-off-by: Egbert Eich +--- + test/compare_sgemm_sbgemm.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/test/compare_sgemm_sbgemm.c b/test/compare_sgemm_sbgemm.c +index d4b59145..276fecae 100644 +--- a/test/compare_sgemm_sbgemm.c ++++ b/test/compare_sgemm_sbgemm.c +@@ -112,7 +112,6 @@ main (int argc, char *argv[]) + &m, BB, &k, &beta, CC, &m); + for (i = 0; i < n; i++) + for (j = 0; j < m; j++) +- for (l = 0; l < k; l++) + if (fabs (CC[i * m + j] - C[i * m + j]) > 1.0) + ret++; + if (transA == 'N' && transB == 'N') +@@ -126,7 +125,6 @@ main (int argc, char *argv[]) + } + for (i = 0; i < n; i++) + for (j = 0; j < m; j++) +- for (l = 0; l < k; l++) + if (CC[i * m + j] != DD[i * m + j]) + ret++; + }