From e9c32c0195c89588bf03848bcd79b5fcc39c9090 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Aug 17 2019 19:20:01 +0000 Subject: - Patch out use of simd pragma - Use devtoolset-8, not -6 on el6/7 - Fix dblat3 test --- diff --git a/blis-no-ompsimd.patch b/blis-no-ompsimd.patch new file mode 100644 index 0000000..672d1c2 --- /dev/null +++ b/blis-no-ompsimd.patch @@ -0,0 +1,11 @@ +--- blis-0.6.0/configure~ 2019-06-03 23:37:19.000000000 +0000 ++++ blis-0.6.0/configure 2019-08-17 15:36:05.422423009 +0000 +@@ -2529,7 +2529,7 @@ + has_memkind=$(has_libmemkind) + + # Try to determine whether the chosen compiler supports #pragma omp simd. +- pragma_omp_simd=$(has_pragma_omp_simd) ++ pragma_omp_simd=no #$(has_pragma_omp_simd) + + + # -- Prepare variables for subsitution into template files ----------------- diff --git a/blis.spec b/blis.spec index 82cd74c..bbadc32 100644 --- a/blis.spec +++ b/blis.spec @@ -9,8 +9,7 @@ %global soshort .2 %if 0%{?el6}%{?el7} -# Use devtoolset 6, not later, to get a libgfortran compatible with -# the system one, but with decent avx512 support (and aarch64?). +# Use devtoolset for avx512 support %ifnarch ppc64le ppc64 %global dts6 1 %endif @@ -21,7 +20,7 @@ Name: blis Version: 0.6.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: BLAS-like Library Instantiation Software Framework License: BSD URL: https://github.com/flame/blis @@ -30,8 +29,12 @@ Source0: https://github.com/flame/blis/archive/%commit/%name-%shortcommit.tar.gz %else Source0: https://github.com/flame/blis/archive/%version/%name-%version.tar.gz %endif +# The simd pragma is a pessimization with gcc, since it avoids fma, +# and gcc versions which support the pragma will vectorize the loops +# anyway. +Patch1: blis-no-ompsimd.patch BuildRequires: perl -BuildRequires: %{?dts6:devtoolset-6-binutils devtoolset-6-}gcc +BuildRequires: %{?dts6:devtoolset-8-binutils devtoolset-8-}gcc BuildRequires: /usr/bin/python3 gcc-gfortran chrpath # memkind is currently only relevant for KNL, but might be relevant in # future for other targets with HBM. The latest version also has @@ -126,10 +129,11 @@ BLIS architecture macros. %prep %setup -q %{?commit: -n %name-%commit} +%patch1 -p1 %build -%{?dts6:. /opt/rh/devtoolset-6/enable} +%{?dts6:. /opt/rh/devtoolset-8/enable} case %_arch in x86_64) arch=x86_64 ;; aarch64) arch=cortexa57 ;; # apparently will run on all aarch64 @@ -280,12 +284,12 @@ EOF %check -%{?dts6:. /opt/rh/devtoolset-6/enable} +%{?dts6:. /opt/rh/devtoolset-8/enable} # A quick check which tests the Fortran BLAS interface with gfortran, # unlike the "test" or "check" targets. # Fixme: check a 64-bit version where relevant gfortran -o dblat blastest/src/fortran/dblat3.f -Lblisblas -Lserial/lib -lblas -lblis -LD_LIBRARY_PATH=$(pwd)/serial/lib:$(pwd)/bliblas ./dblat <<+ || { cat dblat3.summ && false; } +LD_LIBRARY_PATH=$(pwd)/serial/lib:$(pwd)/blisblas ./dblat <<+ || { cat dblat3.summ && false; } 'dblat3.summ' 6 'dblat3.snap' @@ -370,6 +374,11 @@ export LD_LIBRARY_PATH=`pwd`/serial/lib %{macrosdir}/macros.blis-srpm %changelog +* Sat Aug 17 2019 Dave love - 0.6.0-3 +- Patch out use of simd pragma +- Use devtoolset-8, not -6 on el6/7 +- Fix dblat3 test + * Wed Jul 24 2019 Fedora Release Engineering - 0.6.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild