From fe8d3102a545008b850247d3f9bee9ff5501c033 Mon Sep 17 00:00:00 2001 From: Jun Tang Date: Tue, 21 Nov 2023 21:16:34 +0000 Subject: [PATCH 1/2] disable tree-vectorize to reduce number of numerical errors for lapack-test --- .../o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb | 4 +++ ...-0.3.21_disable-tree-vectorize-cmake.patch | 26 +++++++++++++++++ ...S-0.3.21_disable-tree-vectorize-make.patch | 28 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch create mode 100644 easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb index 7e7d8c4b75fa..083a42b7b699 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb @@ -21,6 +21,8 @@ patches = [ 'OpenBLAS-0.3.21_fix-order-vectorization.patch', 'OpenBLAS-0.3.21-GCC-12.2.0_disable-fma-in-cscal-zscal.patch', 'OpenBLAS-0.3.21_avoid-crash-in-zdot.patch', + 'OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch', + 'OpenBLAS-0.3.21_disable-tree-vectorize-make.patch', ] checksums = [ {'v0.3.21.tar.gz': 'f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca'}, @@ -36,6 +38,8 @@ checksums = [ {'OpenBLAS-0.3.21-GCC-12.2.0_disable-fma-in-cscal-zscal.patch': '9784e93567d100960a4c34d86e215bd7aa70bb28b0bc2c6bf1b22c6a05d56003'}, {'OpenBLAS-0.3.21_avoid-crash-in-zdot.patch': '3dac2c1ec896df574f1b37cde81a16f24550b7f1eb81fbfacb0c4449b0dc7894'}, + {'OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch': 'd8fca9d3956e45d6b9e588159675aa198b6d02534b09e3e797fbf8aee824aed7'}, + {'OpenBLAS-0.3.21_disable-tree-vectorize-make.patch': '3040e30f752107111b23064b8b25514719d46daed7445ad4bca89d2f66ecf95a'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch new file mode 100644 index 000000000000..93e00ff90e61 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch @@ -0,0 +1,26 @@ +From 32566bfb44067e0c0459e94b53c9457613539eeb Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Thu, 13 Oct 2022 14:04:25 +0200 +Subject: [PATCH] Disable the gfortran tree vectorizer for netlib LAPACK + +--- + cmake/lapack.cmake | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/cmake/lapack.cmake b/cmake/lapack.cmake +index f8a27f5d4..3b221d420 100644 +--- a/cmake/lapack.cmake ++++ b/cmake/lapack.cmake +@@ -999,6 +999,9 @@ endforeach () + + if (NOT C_LAPACK) + set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}") ++ if (${F_COMPILER} STREQUAL "GFORTRAN") ++ set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS} -fno-tree-vectorize") ++ endif() + else () + set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_CFLAGS}") + endif () +-- +2.25.1 + diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch new file mode 100644 index 000000000000..663bd5460742 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch @@ -0,0 +1,28 @@ +From 57809526c430ef0a07f5c5c39dce20c6d73a1f35 Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Thu, 13 Oct 2022 09:12:23 +0200 +Subject: [PATCH] Disable the gfortran tree vectorizer for lapack-netlib + +--- + Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Makefile b/Makefile +index 289f0eca5..56af9847e 100644 +--- a/Makefile ++++ b/Makefile +@@ -278,7 +278,11 @@ prof_lapack : lapack_prebuild + lapack_prebuild : + ifeq ($(NO_LAPACK), $(filter 0,$(NO_LAPACK))) + -@echo "FC = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc ++ifeq ($(F_COMPILER), GFORTRAN) ++ -@echo "override FFLAGS = $(LAPACK_FFLAGS) -fno-tree-vectorize" >> $(NETLIB_LAPACK_DIR)/make.inc ++else + -@echo "override FFLAGS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc ++endif + -@echo "FFLAGS_DRV = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "FFLAGS_NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc +-- +2.25.1 + From 6f2dfeba50ca5b49e9695092df5464f57d3d9be9 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 3 Jan 2024 10:50:02 +0100 Subject: [PATCH 2/2] collapse patches for OpenBLAS v0.3.21 to disable -ftree-vectorize for LAPACK --- .../o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb | 7 +++-- ...-0.3.21_disable-tree-vectorize-cmake.patch | 26 ------------------- ...nBLAS-0.3.21_disable-tree-vectorize.patch} | 26 +++++++++++++++++++ 3 files changed, 29 insertions(+), 30 deletions(-) delete mode 100644 easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch rename easybuild/easyconfigs/o/OpenBLAS/{OpenBLAS-0.3.21_disable-tree-vectorize-make.patch => OpenBLAS-0.3.21_disable-tree-vectorize.patch} (54%) diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb index 083a42b7b699..ea28ea399a40 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21-GCC-12.2.0.eb @@ -21,8 +21,7 @@ patches = [ 'OpenBLAS-0.3.21_fix-order-vectorization.patch', 'OpenBLAS-0.3.21-GCC-12.2.0_disable-fma-in-cscal-zscal.patch', 'OpenBLAS-0.3.21_avoid-crash-in-zdot.patch', - 'OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch', - 'OpenBLAS-0.3.21_disable-tree-vectorize-make.patch', + 'OpenBLAS-0.3.21_disable-tree-vectorize.patch', ] checksums = [ {'v0.3.21.tar.gz': 'f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca'}, @@ -38,8 +37,8 @@ checksums = [ {'OpenBLAS-0.3.21-GCC-12.2.0_disable-fma-in-cscal-zscal.patch': '9784e93567d100960a4c34d86e215bd7aa70bb28b0bc2c6bf1b22c6a05d56003'}, {'OpenBLAS-0.3.21_avoid-crash-in-zdot.patch': '3dac2c1ec896df574f1b37cde81a16f24550b7f1eb81fbfacb0c4449b0dc7894'}, - {'OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch': 'd8fca9d3956e45d6b9e588159675aa198b6d02534b09e3e797fbf8aee824aed7'}, - {'OpenBLAS-0.3.21_disable-tree-vectorize-make.patch': '3040e30f752107111b23064b8b25514719d46daed7445ad4bca89d2f66ecf95a'}, + {'OpenBLAS-0.3.21_disable-tree-vectorize.patch': + '30abb2707ea5be5afcac53e12cc3febe66315b2bf84579142fdcd8f4fc0c23eb'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch deleted file mode 100644 index 93e00ff90e61..000000000000 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-cmake.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 32566bfb44067e0c0459e94b53c9457613539eeb Mon Sep 17 00:00:00 2001 -From: Martin Kroeker -Date: Thu, 13 Oct 2022 14:04:25 +0200 -Subject: [PATCH] Disable the gfortran tree vectorizer for netlib LAPACK - ---- - cmake/lapack.cmake | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/cmake/lapack.cmake b/cmake/lapack.cmake -index f8a27f5d4..3b221d420 100644 ---- a/cmake/lapack.cmake -+++ b/cmake/lapack.cmake -@@ -999,6 +999,9 @@ endforeach () - - if (NOT C_LAPACK) - set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}") -+ if (${F_COMPILER} STREQUAL "GFORTRAN") -+ set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS} -fno-tree-vectorize") -+ endif() - else () - set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_CFLAGS}") - endif () --- -2.25.1 - diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize.patch similarity index 54% rename from easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch rename to easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize.patch index 663bd5460742..5085b51aff91 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize-make.patch +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.21_disable-tree-vectorize.patch @@ -1,3 +1,29 @@ +From 32566bfb44067e0c0459e94b53c9457613539eeb Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Thu, 13 Oct 2022 14:04:25 +0200 +Subject: [PATCH] Disable the gfortran tree vectorizer for netlib LAPACK + +--- + cmake/lapack.cmake | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/cmake/lapack.cmake b/cmake/lapack.cmake +index f8a27f5d4..3b221d420 100644 +--- a/cmake/lapack.cmake ++++ b/cmake/lapack.cmake +@@ -999,6 +999,9 @@ endforeach () + + if (NOT C_LAPACK) + set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}") ++ if (${F_COMPILER} STREQUAL "GFORTRAN") ++ set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS} -fno-tree-vectorize") ++ endif() + else () + set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_CFLAGS}") + endif () +-- +2.25.1 + From 57809526c430ef0a07f5c5c39dce20c6d73a1f35 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 13 Oct 2022 09:12:23 +0200