RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/openblas#6ba14f0bda60b6eb130c20b2a3e5939d7d50400b
This commit is contained in:
parent
6ede49d9c5
commit
343bee6d03
22
.gitignore
vendored
22
.gitignore
vendored
@ -0,0 +1,22 @@
|
|||||||
|
/v0.2.5.tar.gz
|
||||||
|
/v0.2.7.tar.gz
|
||||||
|
/v0.2.8.tar.gz
|
||||||
|
/v0.2.9.tar.gz
|
||||||
|
/v0.2.10.tar.gz
|
||||||
|
/v0.2.11.tar.gz
|
||||||
|
/v0.2.12.tar.gz
|
||||||
|
/v0.2.13.tar.gz
|
||||||
|
/v0.2.14.tar.gz
|
||||||
|
/v0.2.15.tar.gz
|
||||||
|
/v0.2.16.tar.gz
|
||||||
|
/openblas-0.2.17.tar.gz
|
||||||
|
/v0.2.18.tar.gz
|
||||||
|
/v0.2.19.tar.gz
|
||||||
|
/v0.3.0.tar.gz
|
||||||
|
/v0.3.1.tar.gz
|
||||||
|
/openblas-0.3.2.tar.gz
|
||||||
|
/openblas-0.3.6.tar.gz
|
||||||
|
/openblas-0.3.7.tar.gz
|
||||||
|
/openblas-0.3.8.tar.gz
|
||||||
|
/openblas-0.3.9.tar.gz
|
||||||
|
/openblas-0.3.10.tar.gz
|
89
2669.patch
Normal file
89
2669.patch
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
From a2d13ea61183099c05aa31e23ef59e1411d77177 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
Date: Tue, 16 Jun 2020 14:40:50 +0200
|
||||||
|
Subject: [PATCH 1/2] Fix gcc version detection for zarch
|
||||||
|
|
||||||
|
Employ common variables for gcc version detection and fix the broken
|
||||||
|
check for gcc >= 5.2.
|
||||||
|
Fixes #2668
|
||||||
|
|
||||||
|
Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
---
|
||||||
|
Makefile.system | 19 ++++++++++++++-----
|
||||||
|
1 file changed, 14 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.system b/Makefile.system
|
||||||
|
index 8d78b420f..5738b14ec 100644
|
||||||
|
--- a/Makefile.system
|
||||||
|
+++ b/Makefile.system
|
||||||
|
@@ -282,9 +282,11 @@ endif
|
||||||
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
|
||||||
|
GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
|
||||||
|
+GCCVERSIONEQ5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` = 5)
|
||||||
|
GCCVERSIONGT5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 5)
|
||||||
|
GCCVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 7)
|
||||||
|
GCCVERSIONGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
|
||||||
|
+GCCMINORVERSIONGTEQ2 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 2)
|
||||||
|
GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
|
||||||
|
endif
|
||||||
|
|
||||||
|
@@ -570,20 +572,27 @@ ifeq ($(ARCH), zarch)
|
||||||
|
DYNAMIC_CORE = ZARCH_GENERIC
|
||||||
|
|
||||||
|
# Z13 is supported since gcc-5.2, gcc-6, and in RHEL 7.3 and newer
|
||||||
|
-GCC_GE_52 := $(subst 0,,$(shell expr `$(CC) -dumpversion` \>= "5.2"))
|
||||||
|
+ifeq ($(GCCVERSIONGT5), 1)
|
||||||
|
+ ZARCH_SUPPORT_Z13 := 1
|
||||||
|
+else ifeq ($(GCCVERSIONEQ5), 1)
|
||||||
|
+ifeq ($(GCCMINORVERSIONGTEQ2), 1)
|
||||||
|
+ ZARCH_SUPPORT_Z13 := 1
|
||||||
|
+endif
|
||||||
|
+endif
|
||||||
|
|
||||||
|
ifeq ($(wildcard /etc/redhat-release), /etc/redhat-release)
|
||||||
|
-RHEL_WITH_Z13 := $(subst 0,,$(shell source /etc/os-release ; expr $$VERSION_ID \>= "7.3"))
|
||||||
|
+ifeq ($(shell source /etc/os-release ; expr $$VERSION_ID \>= "7.3"), 1)
|
||||||
|
+ ZARCH_SUPPORT_Z13 := 1
|
||||||
|
+endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
-ifeq ($(or $(GCC_GE_52),$(RHEL_WITH_Z13)), 1)
|
||||||
|
+ifeq ($(ZARCH_SUPPORT_Z13), 1)
|
||||||
|
DYNAMIC_CORE += Z13
|
||||||
|
else
|
||||||
|
$(info OpenBLAS: Not building Z13 kernels because gcc is older than 5.2 or 6.x)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-GCC_MAJOR_GE_7 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 7)
|
||||||
|
-ifeq ($(GCC_MAJOR_GE_7), 1)
|
||||||
|
+ifeq ($(GCCVERSIONGTEQ7), 1)
|
||||||
|
DYNAMIC_CORE += Z14
|
||||||
|
else
|
||||||
|
$(info OpenBLAS: Not building Z14 kernels because gcc is older than 7.x)
|
||||||
|
|
||||||
|
From 23892917667d87072eef2f18b6120f5d3c029f90 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
Date: Tue, 16 Jun 2020 14:45:09 +0200
|
||||||
|
Subject: [PATCH 2/2] Makefile.system: remove duplicate variable GCCVERSIONGT5
|
||||||
|
|
||||||
|
... to bring unified gcc version detection with common variables to the
|
||||||
|
one remaining spot in Makefile.system.
|
||||||
|
|
||||||
|
Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
---
|
||||||
|
Makefile.system | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.system b/Makefile.system
|
||||||
|
index 5738b14ec..63cdbccd8 100644
|
||||||
|
--- a/Makefile.system
|
||||||
|
+++ b/Makefile.system
|
||||||
|
@@ -606,7 +606,6 @@ ifneq ($(C_COMPILER), GCC)
|
||||||
|
DYNAMIC_CORE += POWER9
|
||||||
|
endif
|
||||||
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
-GCCVERSIONGT5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 5)
|
||||||
|
ifeq ($(GCCVERSIONGT5), 1)
|
||||||
|
DYNAMIC_CORE += POWER9
|
||||||
|
else
|
90
2672.patch
Normal file
90
2672.patch
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
From 478898b37a91836a39d046f8c70e26c6c9fc06c7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
Date: Wed, 17 Jun 2020 16:08:48 +0200
|
||||||
|
Subject: [PATCH 1/2] cpp_thread_test/dgemv: cap concurrency to number of hw
|
||||||
|
threads on small systems
|
||||||
|
|
||||||
|
... instead of (number of hw threads - 4) to avoid invalid numbers on
|
||||||
|
smaller systems. Currently, systems with 4 or fewer CPUs (e.g., small CI
|
||||||
|
VMs) would fail the test. Fixes one of the issues discussed in #2668
|
||||||
|
|
||||||
|
Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
---
|
||||||
|
cpp_thread_test/dgemv_thread_safety.cpp | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/dgemv_thread_safety.cpp b/cpp_thread_test/dgemv_thread_safety.cpp
|
||||||
|
index 5411fec29..277594ff0 100644
|
||||||
|
--- a/cpp_thread_test/dgemv_thread_safety.cpp
|
||||||
|
+++ b/cpp_thread_test/dgemv_thread_safety.cpp
|
||||||
|
@@ -18,7 +18,7 @@ int main(int argc, char* argv[]){
|
||||||
|
uint32_t maxHwThreads = omp_get_max_threads();
|
||||||
|
|
||||||
|
if (maxHwThreads < 52)
|
||||||
|
- numConcurrentThreads = maxHwThreads -4;
|
||||||
|
+ numConcurrentThreads = maxHwThreads;
|
||||||
|
|
||||||
|
if (argc > 4){
|
||||||
|
std::cout<<"ERROR: too many arguments for thread safety tester"<<std::endl;
|
||||||
|
|
||||||
|
From de838c38ef9db98a635de1dcedeba8b578ec87b3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
Date: Wed, 17 Jun 2020 16:15:44 +0200
|
||||||
|
Subject: [PATCH 2/2] cpp_thread_test/dgemv: fail early if concurrency is zero
|
||||||
|
|
||||||
|
The two test cases dgemv_tester and dgemm_tester accept the degree of
|
||||||
|
concurrency as command line argument (amongst others). Fail early if
|
||||||
|
value 0 has been specified, instead of later with less-clear symptoms.
|
||||||
|
|
||||||
|
Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com>
|
||||||
|
---
|
||||||
|
cpp_thread_test/cpp_thread_safety_common.h | 8 ++++++++
|
||||||
|
cpp_thread_test/dgemm_thread_safety.cpp | 2 ++
|
||||||
|
cpp_thread_test/dgemv_thread_safety.cpp | 2 ++
|
||||||
|
3 files changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/cpp_thread_safety_common.h b/cpp_thread_test/cpp_thread_safety_common.h
|
||||||
|
index 60ab5bb2f..8005369a8 100644
|
||||||
|
--- a/cpp_thread_test/cpp_thread_safety_common.h
|
||||||
|
+++ b/cpp_thread_test/cpp_thread_safety_common.h
|
||||||
|
@@ -5,6 +5,14 @@ inline void pauser(){
|
||||||
|
std::getline(std::cin, dummy);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void FailIfThreadsAreZero(uint32_t numConcurrentThreads) {
|
||||||
|
+ if(numConcurrentThreads == 0) {
|
||||||
|
+ std::cout<<"ERROR: Invalid parameter 0 for number of concurrent calls into OpenBLAS!"<<std::endl;
|
||||||
|
+ std::cout<<"CBLAS DGEMV thread safety test FAILED!"<<std::endl;
|
||||||
|
+ exit(-1);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void FillMatrices(std::vector<std::vector<double>>& matBlock, std::mt19937_64& PRNG, std::uniform_real_distribution<double>& rngdist, const blasint randomMatSize, const uint32_t numConcurrentThreads, const uint32_t numMat){
|
||||||
|
for(uint32_t i=0; i<numMat; i++){
|
||||||
|
for(uint32_t j = 0; j < static_cast<uint32_t>(randomMatSize*randomMatSize); j++){
|
||||||
|
diff --git a/cpp_thread_test/dgemm_thread_safety.cpp b/cpp_thread_test/dgemm_thread_safety.cpp
|
||||||
|
index 1c5287524..104c64f2a 100644
|
||||||
|
--- a/cpp_thread_test/dgemm_thread_safety.cpp
|
||||||
|
+++ b/cpp_thread_test/dgemm_thread_safety.cpp
|
||||||
|
@@ -46,6 +46,8 @@ int main(int argc, char* argv[]){
|
||||||
|
std::cout<<"Number of concurrent calls into OpenBLAS : "<<numConcurrentThreads<<'\n';
|
||||||
|
std::cout<<"Number of testing rounds : "<<numTestRounds<<'\n';
|
||||||
|
std::cout<<"This test will need "<<(static_cast<uint64_t>(randomMatSize*randomMatSize)*numConcurrentThreads*3*8)/static_cast<double>(1024*1024)<<" MiB of RAM\n"<<std::endl;
|
||||||
|
+
|
||||||
|
+ FailIfThreadsAreZero(numConcurrentThreads);
|
||||||
|
|
||||||
|
std::cout<<"Initializing random number generator..."<<std::flush;
|
||||||
|
std::mt19937_64 PRNG = InitPRNG();
|
||||||
|
diff --git a/cpp_thread_test/dgemv_thread_safety.cpp b/cpp_thread_test/dgemv_thread_safety.cpp
|
||||||
|
index 277594ff0..20ea38138 100644
|
||||||
|
--- a/cpp_thread_test/dgemv_thread_safety.cpp
|
||||||
|
+++ b/cpp_thread_test/dgemv_thread_safety.cpp
|
||||||
|
@@ -47,6 +47,8 @@ int main(int argc, char* argv[]){
|
||||||
|
std::cout<<"Number of concurrent calls into OpenBLAS : "<<numConcurrentThreads<<'\n';
|
||||||
|
std::cout<<"Number of testing rounds : "<<numTestRounds<<'\n';
|
||||||
|
std::cout<<"This test will need "<<((static_cast<uint64_t>(randomMatSize*randomMatSize)*numConcurrentThreads*8)+(static_cast<uint64_t>(randomMatSize)*numConcurrentThreads*8*2))/static_cast<double>(1024*1024)<<" MiB of RAM\n"<<std::endl;
|
||||||
|
+
|
||||||
|
+ FailIfThreadsAreZero(numConcurrentThreads);
|
||||||
|
|
||||||
|
std::cout<<"Initializing random number generator..."<<std::flush;
|
||||||
|
std::mt19937_64 PRNG = InitPRNG();
|
363
2784.patch
Normal file
363
2784.patch
Normal file
@ -0,0 +1,363 @@
|
|||||||
|
From f5fcc5baec1c5aea7dbd7a2a8fdd41ae8b422a6e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Sat, 15 Aug 2020 13:30:29 +0200
|
||||||
|
Subject: [PATCH 01/10] Add trivial gemm test for multithread consistency
|
||||||
|
|
||||||
|
---
|
||||||
|
cpp_thread_test/gemm64.cpp | 20 ++++++++++++++++++++
|
||||||
|
1 file changed, 20 insertions(+)
|
||||||
|
create mode 100644 cpp_thread_test/gemm64.cpp
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/gemm64.cpp b/cpp_thread_test/gemm64.cpp
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..2c3442a2e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cpp_thread_test/gemm64.cpp
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+#include <iostream>
|
||||||
|
+#include <cblas.h>
|
||||||
|
+int main ( int argc, char* argv[] ) {
|
||||||
|
+ const long n = ((long)1 << 31) - 1;
|
||||||
|
+ std::cout << n <<std::endl;
|
||||||
|
+ float* A = new float[n];
|
||||||
|
+ float* B = new float[n];
|
||||||
|
+ float* C = new float[1];
|
||||||
|
+ for(long i =0; i <n; i++){
|
||||||
|
+ A[i] = 1;
|
||||||
|
+ B[i] = 1;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+ cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 1, 1, n, 1.0, A, n, B, 1, 0.0, C, 1);
|
||||||
|
+ std::cout << *C <<std::endl;
|
||||||
|
+ delete[] A;
|
||||||
|
+ delete[] B;
|
||||||
|
+ delete[] C;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
|
||||||
|
From 47ce1dd08fc9c5e66b6ac22e68152a189eeac2c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Sat, 15 Aug 2020 13:31:28 +0200
|
||||||
|
Subject: [PATCH 02/10] Update gemm64.cpp
|
||||||
|
|
||||||
|
---
|
||||||
|
cpp_thread_test/gemm64.cpp | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/gemm64.cpp b/cpp_thread_test/gemm64.cpp
|
||||||
|
index 2c3442a2e..df38416fa 100644
|
||||||
|
--- a/cpp_thread_test/gemm64.cpp
|
||||||
|
+++ b/cpp_thread_test/gemm64.cpp
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
#include <iostream>
|
||||||
|
-#include <cblas.h>
|
||||||
|
+#include "common.h"
|
||||||
|
+#include "cblas.h"
|
||||||
|
int main ( int argc, char* argv[] ) {
|
||||||
|
const long n = ((long)1 << 31) - 1;
|
||||||
|
std::cout << n <<std::endl;
|
||||||
|
|
||||||
|
From 6a93e3b2bae7d7979b1edd538d5d5972836900bb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Sat, 15 Aug 2020 13:33:52 +0200
|
||||||
|
Subject: [PATCH 03/10] Add simple sgemm preicsion test
|
||||||
|
|
||||||
|
---
|
||||||
|
cpp_thread_test/Makefile | 6 +++++-
|
||||||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/Makefile b/cpp_thread_test/Makefile
|
||||||
|
index 81e3470ef..0dc7229d7 100644
|
||||||
|
--- a/cpp_thread_test/Makefile
|
||||||
|
+++ b/cpp_thread_test/Makefile
|
||||||
|
@@ -10,5 +10,9 @@ dgemm_tester : dgemv_tester
|
||||||
|
$(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemm_thread_safety.cpp ../libopenblas.a -lpthread -o dgemm_tester
|
||||||
|
./dgemm_tester
|
||||||
|
|
||||||
|
+gemm64 : gemm64
|
||||||
|
+ $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 gemm64.cpp ../libopenblas.a -lpthread -o gemm64
|
||||||
|
+ ./gemm64
|
||||||
|
+
|
||||||
|
clean ::
|
||||||
|
- rm -f dgemv_tester dgemm_tester
|
||||||
|
+ rm -f dgemv_tester dgemm_tester gemm64
|
||||||
|
|
||||||
|
From 37ac23e8a36049d875d01887b292ec11751fccc8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Sat, 15 Aug 2020 13:38:05 +0200
|
||||||
|
Subject: [PATCH 04/10] Add simple MT sgemm precision test and INTERFACE64
|
||||||
|
build
|
||||||
|
|
||||||
|
---
|
||||||
|
.drone.yml | 26 ++++++++++++++++++++++++++
|
||||||
|
1 file changed, 26 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/.drone.yml b/.drone.yml
|
||||||
|
index b1c211d14..fb009d46e 100644
|
||||||
|
--- a/.drone.yml
|
||||||
|
+++ b/.drone.yml
|
||||||
|
@@ -190,3 +190,29 @@ steps:
|
||||||
|
- make -C ctest $COMMON_FLAGS
|
||||||
|
- make -C utest $COMMON_FLAGS
|
||||||
|
- make -C cpp_thread_test dgemm_tester
|
||||||
|
+ - make -C cpp_thread_test gemm64
|
||||||
|
+---
|
||||||
|
+kind: pipeline
|
||||||
|
+name: epyc_native_test_int64
|
||||||
|
+
|
||||||
|
+platform:
|
||||||
|
+ os: linux
|
||||||
|
+ arch: amd64
|
||||||
|
+
|
||||||
|
+steps:
|
||||||
|
+- name: Build and Test
|
||||||
|
+ image: ubuntu:18.04
|
||||||
|
+ environment:
|
||||||
|
+ CC: gcc
|
||||||
|
+ COMMON_FLAGS: 'USE_OPENMP=1 INTERFACE64=1'
|
||||||
|
+ commands:
|
||||||
|
+ - echo "MAKE_FLAGS:= $COMMON_FLAGS"
|
||||||
|
+ - apt-get update -y
|
||||||
|
+ - apt-get install -y make $CC gfortran perl python g++
|
||||||
|
+ - $CC --version
|
||||||
|
+ - make QUIET_MAKE=1 $COMMON_FLAGS
|
||||||
|
+ - make -C test $COMMON_FLAGS
|
||||||
|
+ - make -C ctest $COMMON_FLAGS
|
||||||
|
+ - make -C utest $COMMON_FLAGS
|
||||||
|
+ - make -C cpp_thread_test dgemm_tester
|
||||||
|
+ - make -C cpp_thread_test gemm64
|
||||||
|
|
||||||
|
From d57d503c150bb40e1478b88735818c1b76d64ed2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Sat, 15 Aug 2020 14:46:26 +0200
|
||||||
|
Subject: [PATCH 05/10] Update Makefile
|
||||||
|
|
||||||
|
---
|
||||||
|
cpp_thread_test/Makefile | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/Makefile b/cpp_thread_test/Makefile
|
||||||
|
index 0dc7229d7..0d78990eb 100644
|
||||||
|
--- a/cpp_thread_test/Makefile
|
||||||
|
+++ b/cpp_thread_test/Makefile
|
||||||
|
@@ -11,7 +11,7 @@ dgemm_tester : dgemv_tester
|
||||||
|
./dgemm_tester
|
||||||
|
|
||||||
|
gemm64 : gemm64
|
||||||
|
- $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 gemm64.cpp ../libopenblas.a -lpthread -o gemm64
|
||||||
|
+ $(CXX) $(COMMON_OPT) -I.. -Wall -Wextra -Wshadow -fopenmp -std=c++11 gemm64.cpp ../libopenblas.a -lpthread -o gemm64
|
||||||
|
./gemm64
|
||||||
|
|
||||||
|
clean ::
|
||||||
|
|
||||||
|
From 82f8a0aebabab6e81386b75b6f172abb692dd31c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Sat, 15 Aug 2020 15:46:18 +0200
|
||||||
|
Subject: [PATCH 06/10] Update .drone.yml
|
||||||
|
|
||||||
|
---
|
||||||
|
.drone.yml | 26 ++++++++++++++++++++++++++
|
||||||
|
1 file changed, 26 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/.drone.yml b/.drone.yml
|
||||||
|
index fb009d46e..e8353eb5c 100644
|
||||||
|
--- a/.drone.yml
|
||||||
|
+++ b/.drone.yml
|
||||||
|
@@ -166,6 +166,32 @@ steps:
|
||||||
|
- make -C ctest $COMMON_FLAGS
|
||||||
|
- make -C utest $COMMON_FLAGS
|
||||||
|
- make -C cpp_thread_test dgemm_tester
|
||||||
|
+ - make -C cpp_thread_test gemm64
|
||||||
|
+---
|
||||||
|
+kind: pipeline
|
||||||
|
+name: arm64_native_test_int64
|
||||||
|
+
|
||||||
|
+platform:
|
||||||
|
+ os: linux
|
||||||
|
+ arch: arm64
|
||||||
|
+
|
||||||
|
+steps:
|
||||||
|
+- name: Build and Test
|
||||||
|
+ image: ubuntu:18.04
|
||||||
|
+ environment:
|
||||||
|
+ CC: gcc
|
||||||
|
+ COMMON_FLAGS: 'USE_OPENMP=1 INTERFACE64=1'
|
||||||
|
+ commands:
|
||||||
|
+ - echo "MAKE_FLAGS:= $COMMON_FLAGS"
|
||||||
|
+ - apt-get update -y
|
||||||
|
+ - apt-get install -y make $CC gfortran perl python g++
|
||||||
|
+ - $CC --version
|
||||||
|
+ - make QUIET_MAKE=1 $COMMON_FLAGS
|
||||||
|
+ - make -C test $COMMON_FLAGS
|
||||||
|
+ - make -C ctest $COMMON_FLAGS
|
||||||
|
+ - make -C utest $COMMON_FLAGS
|
||||||
|
+ - make -C cpp_thread_test dgemm_tester
|
||||||
|
+ - make -C cpp_thread_test gemm64
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: epyc_native_test
|
||||||
|
|
||||||
|
From 5ec8f716cf181b70352fa15a7beb45fc886312de Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Mon, 17 Aug 2020 15:19:40 +0200
|
||||||
|
Subject: [PATCH 07/10] revert
|
||||||
|
|
||||||
|
---
|
||||||
|
.drone.yml | 52 ----------------------------------------------------
|
||||||
|
1 file changed, 52 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/.drone.yml b/.drone.yml
|
||||||
|
index e8353eb5c..b1c211d14 100644
|
||||||
|
--- a/.drone.yml
|
||||||
|
+++ b/.drone.yml
|
||||||
|
@@ -166,32 +166,6 @@ steps:
|
||||||
|
- make -C ctest $COMMON_FLAGS
|
||||||
|
- make -C utest $COMMON_FLAGS
|
||||||
|
- make -C cpp_thread_test dgemm_tester
|
||||||
|
- - make -C cpp_thread_test gemm64
|
||||||
|
----
|
||||||
|
-kind: pipeline
|
||||||
|
-name: arm64_native_test_int64
|
||||||
|
-
|
||||||
|
-platform:
|
||||||
|
- os: linux
|
||||||
|
- arch: arm64
|
||||||
|
-
|
||||||
|
-steps:
|
||||||
|
-- name: Build and Test
|
||||||
|
- image: ubuntu:18.04
|
||||||
|
- environment:
|
||||||
|
- CC: gcc
|
||||||
|
- COMMON_FLAGS: 'USE_OPENMP=1 INTERFACE64=1'
|
||||||
|
- commands:
|
||||||
|
- - echo "MAKE_FLAGS:= $COMMON_FLAGS"
|
||||||
|
- - apt-get update -y
|
||||||
|
- - apt-get install -y make $CC gfortran perl python g++
|
||||||
|
- - $CC --version
|
||||||
|
- - make QUIET_MAKE=1 $COMMON_FLAGS
|
||||||
|
- - make -C test $COMMON_FLAGS
|
||||||
|
- - make -C ctest $COMMON_FLAGS
|
||||||
|
- - make -C utest $COMMON_FLAGS
|
||||||
|
- - make -C cpp_thread_test dgemm_tester
|
||||||
|
- - make -C cpp_thread_test gemm64
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: epyc_native_test
|
||||||
|
@@ -216,29 +190,3 @@ steps:
|
||||||
|
- make -C ctest $COMMON_FLAGS
|
||||||
|
- make -C utest $COMMON_FLAGS
|
||||||
|
- make -C cpp_thread_test dgemm_tester
|
||||||
|
- - make -C cpp_thread_test gemm64
|
||||||
|
----
|
||||||
|
-kind: pipeline
|
||||||
|
-name: epyc_native_test_int64
|
||||||
|
-
|
||||||
|
-platform:
|
||||||
|
- os: linux
|
||||||
|
- arch: amd64
|
||||||
|
-
|
||||||
|
-steps:
|
||||||
|
-- name: Build and Test
|
||||||
|
- image: ubuntu:18.04
|
||||||
|
- environment:
|
||||||
|
- CC: gcc
|
||||||
|
- COMMON_FLAGS: 'USE_OPENMP=1 INTERFACE64=1'
|
||||||
|
- commands:
|
||||||
|
- - echo "MAKE_FLAGS:= $COMMON_FLAGS"
|
||||||
|
- - apt-get update -y
|
||||||
|
- - apt-get install -y make $CC gfortran perl python g++
|
||||||
|
- - $CC --version
|
||||||
|
- - make QUIET_MAKE=1 $COMMON_FLAGS
|
||||||
|
- - make -C test $COMMON_FLAGS
|
||||||
|
- - make -C ctest $COMMON_FLAGS
|
||||||
|
- - make -C utest $COMMON_FLAGS
|
||||||
|
- - make -C cpp_thread_test dgemm_tester
|
||||||
|
- - make -C cpp_thread_test gemm64
|
||||||
|
|
||||||
|
From a8c6fb9e1ce4d6cb3d4e8a782f9c4c69469aae91 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Mon, 17 Aug 2020 15:20:16 +0200
|
||||||
|
Subject: [PATCH 08/10] revert
|
||||||
|
|
||||||
|
---
|
||||||
|
cpp_thread_test/Makefile | 6 +-----
|
||||||
|
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/Makefile b/cpp_thread_test/Makefile
|
||||||
|
index 0d78990eb..81e3470ef 100644
|
||||||
|
--- a/cpp_thread_test/Makefile
|
||||||
|
+++ b/cpp_thread_test/Makefile
|
||||||
|
@@ -10,9 +10,5 @@ dgemm_tester : dgemv_tester
|
||||||
|
$(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemm_thread_safety.cpp ../libopenblas.a -lpthread -o dgemm_tester
|
||||||
|
./dgemm_tester
|
||||||
|
|
||||||
|
-gemm64 : gemm64
|
||||||
|
- $(CXX) $(COMMON_OPT) -I.. -Wall -Wextra -Wshadow -fopenmp -std=c++11 gemm64.cpp ../libopenblas.a -lpthread -o gemm64
|
||||||
|
- ./gemm64
|
||||||
|
-
|
||||||
|
clean ::
|
||||||
|
- rm -f dgemv_tester dgemm_tester gemm64
|
||||||
|
+ rm -f dgemv_tester dgemm_tester
|
||||||
|
|
||||||
|
From 6bfc66663c4b3bbd2c5f7ac05a150d2c4bd94af4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Mon, 17 Aug 2020 15:20:41 +0200
|
||||||
|
Subject: [PATCH 09/10] revert
|
||||||
|
|
||||||
|
---
|
||||||
|
cpp_thread_test/gemm64.cpp | 21 ---------------------
|
||||||
|
1 file changed, 21 deletions(-)
|
||||||
|
delete mode 100644 cpp_thread_test/gemm64.cpp
|
||||||
|
|
||||||
|
diff --git a/cpp_thread_test/gemm64.cpp b/cpp_thread_test/gemm64.cpp
|
||||||
|
deleted file mode 100644
|
||||||
|
index df38416fa..000000000
|
||||||
|
--- a/cpp_thread_test/gemm64.cpp
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,21 +0,0 @@
|
||||||
|
-#include <iostream>
|
||||||
|
-#include "common.h"
|
||||||
|
-#include "cblas.h"
|
||||||
|
-int main ( int argc, char* argv[] ) {
|
||||||
|
- const long n = ((long)1 << 31) - 1;
|
||||||
|
- std::cout << n <<std::endl;
|
||||||
|
- float* A = new float[n];
|
||||||
|
- float* B = new float[n];
|
||||||
|
- float* C = new float[1];
|
||||||
|
- for(long i =0; i <n; i++){
|
||||||
|
- A[i] = 1;
|
||||||
|
- B[i] = 1;
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
- cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 1, 1, n, 1.0, A, n, B, 1, 0.0, C, 1);
|
||||||
|
- std::cout << *C <<std::endl;
|
||||||
|
- delete[] A;
|
||||||
|
- delete[] B;
|
||||||
|
- delete[] C;
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
|
||||||
|
From aa286e301b3a4883970107eddb8f02744bdf2fc9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||||
|
Date: Mon, 17 Aug 2020 15:32:14 +0200
|
||||||
|
Subject: [PATCH 10/10] Add typedef for bfloat16 if needed
|
||||||
|
|
||||||
|
---
|
||||||
|
openblas_config_template.h | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/openblas_config_template.h b/openblas_config_template.h
|
||||||
|
index 49aea1cab..9955e5c73 100644
|
||||||
|
--- a/openblas_config_template.h
|
||||||
|
+++ b/openblas_config_template.h
|
||||||
|
@@ -34,6 +34,10 @@ typedef long BLASLONG;
|
||||||
|
typedef unsigned long BLASULONG;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifndef BFLOAT16
|
||||||
|
+typedef unsigned short bfloat16;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifdef OPENBLAS_USE64BITINT
|
||||||
|
typedef BLASLONG blasint;
|
||||||
|
#else
|
19
openblas-0.2.15-constructor.patch
Normal file
19
openblas-0.2.15-constructor.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
diff -up OpenBLAS-0.2.15/driver/others/memory.c.priority OpenBLAS-0.2.15/driver/others/memory.c
|
||||||
|
--- OpenBLAS-0.2.15/driver/others/memory.c.priority 2015-10-27 21:44:50.000000000 +0100
|
||||||
|
+++ OpenBLAS-0.2.15/driver/others/memory.c 2016-01-13 21:12:01.862225898 +0100
|
||||||
|
@@ -146,8 +146,15 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
#define CONSTRUCTOR __attribute__ ((constructor))
|
||||||
|
#define DESTRUCTOR __attribute__ ((destructor))
|
||||||
|
#else
|
||||||
|
+#if __GNUC__ && INIT_PRIORITY && ((GCC_VERSION >= 40300) || (CLANG_VERSION >= 20900))
|
||||||
|
#define CONSTRUCTOR __attribute__ ((constructor(101)))
|
||||||
|
#define DESTRUCTOR __attribute__ ((destructor(101)))
|
||||||
|
+#elif __GNUC__ && INIT_PRIORITY
|
||||||
|
+#define CONSTRUCTOR __attribute__ ((constructor))
|
||||||
|
+#define DESTRUCTOR __attribute__ ((destructor))
|
||||||
|
+#else
|
||||||
|
+#define CONSTRUCTOR
|
||||||
|
+#define DESTRUCTOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DYNAMIC_ARCH
|
87
openblas-0.2.15-system_lapack.patch
Normal file
87
openblas-0.2.15-system_lapack.patch
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
diff -up OpenBLAS-0.2.15/Makefile.system_lapack OpenBLAS-0.2.15/Makefile
|
||||||
|
--- OpenBLAS-0.2.15/Makefile.system_lapack 2015-10-27 13:44:50.000000000 -0700
|
||||||
|
+++ OpenBLAS-0.2.15/Makefile 2015-10-28 09:14:56.696685503 -0700
|
||||||
|
@@ -16,11 +16,7 @@ BLASDIRS += reference
|
||||||
|
endif
|
||||||
|
|
||||||
|
SUBDIRS = $(BLASDIRS)
|
||||||
|
-ifneq ($(NO_LAPACK), 1)
|
||||||
|
-SUBDIRS += lapack
|
||||||
|
-endif
|
||||||
|
-
|
||||||
|
-LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast,$(LAPACK_FFLAGS))
|
||||||
|
+SUBDIRS += lapack
|
||||||
|
|
||||||
|
SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench
|
||||||
|
|
||||||
|
@@ -211,57 +207,8 @@ hpl_p :
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
-ifeq ($(NO_LAPACK), 1)
|
||||||
|
netlib :
|
||||||
|
-
|
||||||
|
-else
|
||||||
|
-netlib : lapack_prebuild
|
||||||
|
-ifndef NOFORTRAN
|
||||||
|
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib
|
||||||
|
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
|
||||||
|
-endif
|
||||||
|
-ifndef NO_LAPACKE
|
||||||
|
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib
|
||||||
|
-endif
|
||||||
|
-endif
|
||||||
|
-
|
||||||
|
-prof_lapack : lapack_prebuild
|
||||||
|
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapack_prof
|
||||||
|
-
|
||||||
|
-lapack_prebuild :
|
||||||
|
-ifndef NOFORTRAN
|
||||||
|
- -@echo "FORTRAN = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "OPTS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "BLASLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "LAPACKELIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
-ifeq ($(FC), gfortran)
|
||||||
|
- -@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
-ifdef SMP
|
||||||
|
- -@echo "LOADER = $(FC) -pthread" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
-else
|
||||||
|
- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
-endif
|
||||||
|
-else
|
||||||
|
- -@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
-endif
|
||||||
|
- -@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||||
|
-endif
|
||||||
|
+ @$(MAKE) -C $(NETLIB_LAPACK_DIR)
|
||||||
|
|
||||||
|
large.tgz :
|
||||||
|
ifndef NOFORTRAN
|
||||||
|
diff -up OpenBLAS-0.2.15/Makefile.system.system_lapack OpenBLAS-0.2.15/Makefile.system
|
||||||
|
--- OpenBLAS-0.2.15/Makefile.system.system_lapack 2015-10-27 13:44:50.000000000 -0700
|
||||||
|
+++ OpenBLAS-0.2.15/Makefile.system 2015-10-28 09:14:39.994350500 -0700
|
||||||
|
@@ -9,7 +9,7 @@ ifndef TOPDIR
|
||||||
|
TOPDIR = .
|
||||||
|
endif
|
||||||
|
|
||||||
|
-NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib
|
||||||
|
+NETLIB_LAPACK_DIR = $(TOPDIR)/netliblapack
|
||||||
|
|
||||||
|
# Default C compiler
|
||||||
|
# - Only set if not specified on the command line or inherited from the environment.
|
24
openblas-0.2.5-libname.patch
Normal file
24
openblas-0.2.5-libname.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up OpenBLAS-0.2.5/Makefile.system.orig OpenBLAS-0.2.5/Makefile.system
|
||||||
|
--- OpenBLAS-0.2.5/Makefile.system.orig 2012-11-27 01:24:53.000000000 +0200
|
||||||
|
+++ OpenBLAS-0.2.5/Makefile.system 2012-12-24 16:13:57.316689688 +0200
|
||||||
|
@@ -758,16 +758,16 @@ ifndef SMP
|
||||||
|
LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
|
||||||
|
LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
|
||||||
|
else
|
||||||
|
-LIBNAME = $(LIBPREFIX)_$(LIBCORE)p$(REVISION).$(LIBSUFFIX)
|
||||||
|
-LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)p$(REVISION)_p.$(LIBSUFFIX)
|
||||||
|
+LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
|
||||||
|
+LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
ifndef SMP
|
||||||
|
LIBNAME = $(LIBPREFIX)$(REVISION).$(LIBSUFFIX)
|
||||||
|
LIBNAME_P = $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX)
|
||||||
|
else
|
||||||
|
-LIBNAME = $(LIBPREFIX)p$(REVISION).$(LIBSUFFIX)
|
||||||
|
-LIBNAME_P = $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX)
|
||||||
|
+LIBNAME = $(LIBPREFIX)$(REVISION).$(LIBSUFFIX)
|
||||||
|
+LIBNAME_P = $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
34
openblas-0.3.10-zdot-ppc64le.patch
Normal file
34
openblas-0.3.10-zdot-ppc64le.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
diff -up OpenBLAS-0.3.10/kernel/power/zdot.c.ppc64le OpenBLAS-0.3.10/kernel/power/zdot.c
|
||||||
|
--- OpenBLAS-0.3.10/kernel/power/zdot.c.ppc64le 2020-06-14 22:03:04.000000000 +0200
|
||||||
|
+++ OpenBLAS-0.3.10/kernel/power/zdot.c 2020-09-18 11:18:16.102180677 +0200
|
||||||
|
@@ -94,8 +94,11 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *
|
||||||
|
|
||||||
|
if ( n <= 0 )
|
||||||
|
{
|
||||||
|
+ /*
|
||||||
|
__real__ result = 0.0 ;
|
||||||
|
__imag__ result = 0.0 ;
|
||||||
|
+ */
|
||||||
|
+ result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0,0.0);
|
||||||
|
return(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
@@ -149,12 +152,17 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !defined(CONJ)
|
||||||
|
+ /*
|
||||||
|
__real__ result = dot[0] - dot[1];
|
||||||
|
__imag__ result = dot[2] + dot[3];
|
||||||
|
+ */
|
||||||
|
+ result = OPENBLAS_MAKE_COMPLEX_FLOAT(dot[0]-dot[1],dot[2]+dot[3]);
|
||||||
|
#else
|
||||||
|
+ /*
|
||||||
|
__real__ result = dot[0] + dot[1];
|
||||||
|
__imag__ result = dot[2] - dot[3];
|
||||||
|
-
|
||||||
|
+ */
|
||||||
|
+ result = OPENBLAS_MAKE_COMPLEX_FLOAT(dot[0]+dot[1],dot[2]-dot[3]);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return(result);
|
42
openblas-0.3.7-tests.patch
Normal file
42
openblas-0.3.7-tests.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
diff -up OpenBLAS-0.3.7/Makefile.tests OpenBLAS-0.3.7/Makefile
|
||||||
|
--- OpenBLAS-0.3.7/Makefile.tests 2019-08-11 23:23:27.000000000 +0200
|
||||||
|
+++ OpenBLAS-0.3.7/Makefile 2019-08-12 11:32:09.937281485 +0200
|
||||||
|
@@ -123,13 +123,13 @@ tests :
|
||||||
|
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
||||||
|
touch $(LIBNAME)
|
||||||
|
ifndef NO_FBLAS
|
||||||
|
- $(MAKE) -C test all
|
||||||
|
+ $(MAKE) -C test FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||||
|
endif
|
||||||
|
- $(MAKE) -C utest all
|
||||||
|
+ $(MAKE) -C utest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||||
|
ifndef NO_CBLAS
|
||||||
|
- $(MAKE) -C ctest all
|
||||||
|
+ $(MAKE) -C ctest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||||
|
ifeq ($(CPP_THREAD_SAFETY_TEST), 1)
|
||||||
|
- $(MAKE) -C cpp_thread_test all
|
||||||
|
+ $(MAKE) -C cpp_thread_test FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
diff -up OpenBLAS-0.3.7/cpp_thread_test/Makefile.tests OpenBLAS-0.3.7/cpp_thread_test/Makefile
|
||||||
|
--- OpenBLAS-0.3.7/cpp_thread_test/Makefile.tests 2019-08-11 19:23:00.000000000 +0000
|
||||||
|
+++ OpenBLAS-0.3.7/cpp_thread_test/Makefile 2019-12-12 11:05:51.426334062 +0000
|
||||||
|
@@ -1,13 +1,14 @@
|
||||||
|
-include ../Makefile.rule
|
||||||
|
+TOPDIR = ..
|
||||||
|
+include $(TOPDIR)/Makefile.system
|
||||||
|
|
||||||
|
all :: dgemv_tester dgemm_tester
|
||||||
|
|
||||||
|
dgemv_tester :
|
||||||
|
- $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemv_thread_safety.cpp ../libopenblas.a -lpthread -o dgemv_tester
|
||||||
|
+ $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemv_thread_safety.cpp ../$(LIBNAME) -lpthread -o dgemv_tester
|
||||||
|
./dgemv_tester
|
||||||
|
|
||||||
|
dgemm_tester : dgemv_tester
|
||||||
|
- $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemm_thread_safety.cpp ../libopenblas.a -lpthread -o dgemm_tester
|
||||||
|
+ $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemm_thread_safety.cpp ../$(LIBNAME) -lpthread -o dgemm_tester
|
||||||
|
./dgemm_tester
|
||||||
|
|
||||||
|
clean ::
|
971
openblas.spec
Normal file
971
openblas.spec
Normal file
@ -0,0 +1,971 @@
|
|||||||
|
%bcond_with system_lapack
|
||||||
|
# Version of bundled lapack
|
||||||
|
%global lapackver 3.9.0
|
||||||
|
|
||||||
|
# DO NOT "CLEAN UP" OR MODIFY THIS SPEC FILE WITHOUT ASKING THE
|
||||||
|
# MAINTAINER FIRST!
|
||||||
|
#
|
||||||
|
# OpenBLAS is hand written assembler code and it has a limited number
|
||||||
|
# of supported architectures. Don't enable any new architectures /
|
||||||
|
# processors a) without checking that it is actually supported and b)
|
||||||
|
# without modifying the target flags.
|
||||||
|
#
|
||||||
|
# The same spec is also used on the EPEL branches, meaninng that some
|
||||||
|
# "obsoleted" features are still kept in the spec.
|
||||||
|
|
||||||
|
Name: openblas
|
||||||
|
Version: 0.3.10
|
||||||
|
Release: 6%{?dist}
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2
|
||||||
|
License: BSD
|
||||||
|
URL: https://github.com/xianyi/OpenBLAS/
|
||||||
|
Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}/openblas-%{version}.tar.gz
|
||||||
|
# Use system lapack
|
||||||
|
Patch0: openblas-0.2.15-system_lapack.patch
|
||||||
|
# Drop extra p from threaded library name
|
||||||
|
Patch1: openblas-0.2.5-libname.patch
|
||||||
|
# Don't use constructor priorities on too old architectures
|
||||||
|
Patch2: openblas-0.2.15-constructor.patch
|
||||||
|
# Fix broken detection for z13 support
|
||||||
|
Patch4: https://github.com/xianyi/OpenBLAS/pull/2669.patch
|
||||||
|
# Fix test suite failure for <= 4 CPUs
|
||||||
|
Patch5: https://github.com/xianyi/OpenBLAS/pull/2672.patch
|
||||||
|
# Resolve undefined bfloat16 datatype (BZ #1873667)
|
||||||
|
Patch6: https://github.com/xianyi/OpenBLAS/pull/2784.patch
|
||||||
|
# Supply the proper flags to the test makefile
|
||||||
|
Patch3: openblas-0.3.7-tests.patch
|
||||||
|
# Fix zdotc on ppc64le (BZ #1878449)
|
||||||
|
Patch7: openblas-0.3.10-zdot-ppc64le.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: gcc-gfortran
|
||||||
|
BuildRequires: perl-devel
|
||||||
|
BuildRequires: multilib-rpm-config
|
||||||
|
|
||||||
|
# Rblas library is no longer necessary
|
||||||
|
%if 0%{?fedora} >= 31 || 0%{?rhel} >= 8
|
||||||
|
Obsoletes: %{name}-Rblas < %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Do we have execstack?
|
||||||
|
%if 0%{?rhel} == 7
|
||||||
|
%ifarch ppc64le aarch64
|
||||||
|
%global execstack 0
|
||||||
|
%else
|
||||||
|
%global execstack 1
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
%global execstack 1
|
||||||
|
%endif
|
||||||
|
%if %{execstack}
|
||||||
|
BuildRequires: /usr/bin/execstack
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# LAPACK
|
||||||
|
%if %{with system_lapack}
|
||||||
|
%if 0%{?rhel} == 5 || 0%{?rhel} == 6
|
||||||
|
BuildRequires: lapack-devel
|
||||||
|
%else
|
||||||
|
BuildRequires: lapack-static
|
||||||
|
%endif
|
||||||
|
# Do we have LAPACKE? (Needs at least lapack 3.4.0)
|
||||||
|
%if 0%{?fedora}
|
||||||
|
%global lapacke 1
|
||||||
|
%else
|
||||||
|
%global lapacke 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%else
|
||||||
|
# Use bundled LAPACK
|
||||||
|
%global lapacke 1
|
||||||
|
Provides: bundled(lapack) = %{lapackver}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Build 64-bit interface binaries?
|
||||||
|
%if 0%{?__isa_bits} == 64
|
||||||
|
%global build64 1
|
||||||
|
%bcond_without cpp_thread_check
|
||||||
|
%else
|
||||||
|
%global build64 0
|
||||||
|
%bcond_with cpp_thread_check
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with system_lapack}
|
||||||
|
%if %build64
|
||||||
|
BuildRequires: lapack64-static
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Upstream supports the package only on these architectures.
|
||||||
|
# Runtime processor detection is not available on other archs.
|
||||||
|
ExclusiveArch: %{openblas_arches}
|
||||||
|
|
||||||
|
%global base_description \
|
||||||
|
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD \
|
||||||
|
version. The project is supported by the Lab of Parallel Software and \
|
||||||
|
Computational Science, ISCAS. http://www.rdcps.ac.cn
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
%package serial
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, serial version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description serial
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the sequential library compiled with a 32-bit
|
||||||
|
integer interface.
|
||||||
|
|
||||||
|
%package openmp
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description openmp
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the library compiled with OpenMP support with
|
||||||
|
32-bit integer interface.
|
||||||
|
|
||||||
|
%package threads
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description threads
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the library compiled with threading support and
|
||||||
|
a 32-bit integer interface.
|
||||||
|
|
||||||
|
%if %build64
|
||||||
|
%package serial64
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, serial version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description serial64
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the sequential library compiled with a 64-bit
|
||||||
|
integer interface.
|
||||||
|
|
||||||
|
%package openmp64
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description openmp64
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the library compiled with OpenMP support and
|
||||||
|
64-bit integer interface.
|
||||||
|
|
||||||
|
%package threads64
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description threads64
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the library compiled with threading support and
|
||||||
|
64-bit integer interface.
|
||||||
|
|
||||||
|
%package serial64_
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, serial version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description serial64_
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the sequential library compiled with a 64-bit
|
||||||
|
integer interface and a symbol name suffix.
|
||||||
|
|
||||||
|
%package openmp64_
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description openmp64_
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the library compiled with OpenMP support and
|
||||||
|
64-bit integer interface and a symbol name suffix.
|
||||||
|
|
||||||
|
%package threads64_
|
||||||
|
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description threads64_
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the library compiled with threading support and
|
||||||
|
64-bit integer interface and a symbol name suffix.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development headers and libraries for OpenBLAS
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-serial%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-openmp%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-threads%{?_isa} = %{version}-%{release}
|
||||||
|
%if %build64
|
||||||
|
Requires: %{name}-openmp64%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-threads64%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-serial64%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-openmp64_%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-threads64_%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-serial64_%{?_isa} = %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
Requires: %{name}-srpm-macros
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the development headers and libraries.
|
||||||
|
|
||||||
|
%package static
|
||||||
|
Summary: Static version of OpenBLAS
|
||||||
|
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description static
|
||||||
|
%{base_description}
|
||||||
|
|
||||||
|
This package contains the static libraries.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -c -T
|
||||||
|
|
||||||
|
# Untar source
|
||||||
|
tar zxf %{SOURCE0}
|
||||||
|
cd OpenBLAS-%{version}
|
||||||
|
%if %{with system_lapack}
|
||||||
|
%patch0 -p1 -b .system_lapack
|
||||||
|
%endif
|
||||||
|
%patch1 -p1 -b .libname
|
||||||
|
%if 0%{?rhel} == 5
|
||||||
|
%patch2 -p1 -b .constructor
|
||||||
|
%endif
|
||||||
|
%patch4 -p1 -b .s390x
|
||||||
|
%patch5 -p1 -b .fewcpus
|
||||||
|
%patch6 -p1 -b .bfloat16
|
||||||
|
%patch3 -p1 -b .tests
|
||||||
|
%patch7 -p1 -b .ppc64le
|
||||||
|
|
||||||
|
# Fix source permissions
|
||||||
|
find -name \*.f -exec chmod 644 {} \;
|
||||||
|
|
||||||
|
%if %{with system_lapack}
|
||||||
|
# Get rid of bundled LAPACK sources
|
||||||
|
rm -rf lapack-netlib
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Make serial, threaded and OpenMP versions; as well as 64-bit versions
|
||||||
|
cd ..
|
||||||
|
cp -ar OpenBLAS-%{version} openmp
|
||||||
|
cp -ar OpenBLAS-%{version} threaded
|
||||||
|
%if %build64
|
||||||
|
for d in {serial,threaded,openmp}64{,_}; do
|
||||||
|
cp -ar OpenBLAS-%{version} $d
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
mv OpenBLAS-%{version} serial
|
||||||
|
|
||||||
|
%if %{with system_lapack}
|
||||||
|
# Setup 32-bit interface LAPACK
|
||||||
|
mkdir netliblapack
|
||||||
|
cd netliblapack
|
||||||
|
ar x %{_libdir}/liblapack_pic.a
|
||||||
|
# Get rid of duplicate functions. See list in Makefile of lapack directory
|
||||||
|
for f in laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs; do
|
||||||
|
\rm {c,d,s,z}$f.o
|
||||||
|
done
|
||||||
|
|
||||||
|
# LAPACKE
|
||||||
|
%if %{lapacke}
|
||||||
|
ar x %{_libdir}/liblapacke.a
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create makefile
|
||||||
|
echo "TOPDIR = .." > Makefile
|
||||||
|
echo "include ../Makefile.system" >> Makefile
|
||||||
|
echo "COMMONOBJS = \\" >> Makefile
|
||||||
|
for i in *.o; do
|
||||||
|
echo "$i \\" >> Makefile
|
||||||
|
done
|
||||||
|
echo -e "\n\ninclude \$(TOPDIR)/Makefile.tail" >> Makefile
|
||||||
|
|
||||||
|
%if %{lapacke}
|
||||||
|
# Copy include files
|
||||||
|
cp -a %{_includedir}/lapacke .
|
||||||
|
%endif
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Copy in place
|
||||||
|
for d in serial threaded openmp; do
|
||||||
|
cp -pr netliblapack $d
|
||||||
|
done
|
||||||
|
rm -rf netliblapack
|
||||||
|
|
||||||
|
|
||||||
|
# Setup 64-bit interface LAPACK
|
||||||
|
%if %build64
|
||||||
|
mkdir netliblapack64
|
||||||
|
cd netliblapack64
|
||||||
|
ar x %{_libdir}/liblapack64_pic.a
|
||||||
|
# Get rid of duplicate functions. See list in Makefile of lapack directory
|
||||||
|
for f in laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs; do
|
||||||
|
\rm {c,d,s,z}$f.o
|
||||||
|
done
|
||||||
|
|
||||||
|
# LAPACKE, no 64-bit interface
|
||||||
|
%if %{lapacke}
|
||||||
|
ar x %{_libdir}/liblapacke.a
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create makefile
|
||||||
|
echo "TOPDIR = .." > Makefile
|
||||||
|
echo "include ../Makefile.system" >> Makefile
|
||||||
|
echo "COMMONOBJS = \\" >> Makefile
|
||||||
|
for i in *.o; do
|
||||||
|
echo "$i \\" >> Makefile
|
||||||
|
done
|
||||||
|
echo -e "\n\ninclude \$(TOPDIR)/Makefile.tail" >> Makefile
|
||||||
|
|
||||||
|
%if %{lapacke}
|
||||||
|
# Copy include files
|
||||||
|
cp -a %{_includedir}/lapacke .
|
||||||
|
%endif
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Copy in place
|
||||||
|
for d in {serial,threaded,openmp}64{,_}; do
|
||||||
|
cp -pr netliblapack64 $d/netliblapack
|
||||||
|
done
|
||||||
|
rm -rf netliblapack64
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%build
|
||||||
|
# openblas fails to build with LTO due to undefined symbols. These could
|
||||||
|
# well be the result of the assembly code used in this package
|
||||||
|
%define _lto_cflags %{nil}
|
||||||
|
%if !%{lapacke}
|
||||||
|
LAPACKE="NO_LAPACKE=1"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Maximum possible amount of processors
|
||||||
|
NMAX="NUM_THREADS=128"
|
||||||
|
|
||||||
|
%ifarch %{ix86} x86_64
|
||||||
|
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
|
||||||
|
# Compability for old versions of GCC
|
||||||
|
%if 0%{?rhel} == 5
|
||||||
|
export AVX="NO_AVX=1 NO_AVX2=1"
|
||||||
|
%endif
|
||||||
|
%if 0%{?rhel} == 6
|
||||||
|
export AVX="NO_AVX2=1"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%endif
|
||||||
|
%ifarch armv7hl
|
||||||
|
# ARM v7 still doesn't have runtime cpu detection...
|
||||||
|
TARGET="TARGET=ARMV7 DYNAMIC_ARCH=0"
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64
|
||||||
|
TARGET="TARGET=POWER6 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64p7
|
||||||
|
TARGET="TARGET=POWER7 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64le
|
||||||
|
TARGET="TARGET=POWER8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
%endif
|
||||||
|
%ifarch aarch64
|
||||||
|
TARGET="TARGET=ARMV8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
%endif
|
||||||
|
%ifarch s390x
|
||||||
|
TARGET="TARGET=ZARCH_GENERIC DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?rhel} == 5
|
||||||
|
# Gfortran too old to recognize -frecursive
|
||||||
|
COMMON="%{optflags} -fPIC"
|
||||||
|
FCOMMON="%{optflags} -fPIC"
|
||||||
|
%else
|
||||||
|
COMMON="%{optflags} -fPIC"
|
||||||
|
FCOMMON="%{optflags} -fPIC -frecursive"
|
||||||
|
%endif
|
||||||
|
# Use Fedora linker flags
|
||||||
|
export LDFLAGS="%{__global_ldflags}"
|
||||||
|
|
||||||
|
# Declare some necessary build flags
|
||||||
|
COMMON="%{optflags} -fPIC"
|
||||||
|
FCOMMON="$COMMON -frecursive"
|
||||||
|
make -C serial $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas" $AVX $LAPACKE INTERFACE64=0
|
||||||
|
make -C threaded $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp" $AVX $LAPACKE INTERFACE64=0
|
||||||
|
|
||||||
|
# USE_THREAD determines use of SMP, not of pthreads
|
||||||
|
COMMON="%{optflags} -fPIC -fopenmp -pthread"
|
||||||
|
FCOMMON="$COMMON -frecursive"
|
||||||
|
make -C openmp $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso" $AVX $LAPACKE INTERFACE64=0 %{with cpp_thread_check:CPP_THREAD_SAFETY_TEST=1}
|
||||||
|
|
||||||
|
%if %build64
|
||||||
|
COMMON="%{optflags} -fPIC"
|
||||||
|
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||||
|
make -C serial64 $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64" $AVX $LAPACKE INTERFACE64=1
|
||||||
|
make -C threaded64 $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64" $AVX $LAPACKE INTERFACE64=1
|
||||||
|
|
||||||
|
COMMON="%{optflags} -fPIC -fopenmp -pthread"
|
||||||
|
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||||
|
make -C openmp64 $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64" $AVX $LAPACKE INTERFACE64=1 CPP_THREAD_SAFETY_TEST=1
|
||||||
|
|
||||||
|
COMMON="%{optflags} -fPIC"
|
||||||
|
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||||
|
make -C serial64_ $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
||||||
|
make -C threaded64_ $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
||||||
|
|
||||||
|
COMMON="%{optflags} -fPIC -fopenmp -pthread"
|
||||||
|
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||||
|
make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_ CPP_THREAD_SAFETY_TEST=1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
# Install serial library and headers
|
||||||
|
make -C serial USE_THREAD=0 PREFIX=%{buildroot} OPENBLAS_LIBRARY_DIR=%{buildroot}%{_libdir} OPENBLAS_INCLUDE_DIR=%{buildroot}%{_includedir}/%name OPENBLAS_BINARY_DIR=%{buildroot}%{_bindir} OPENBLAS_CMAKE_DIR=%{buildroot}%{_libdir}/cmake install
|
||||||
|
|
||||||
|
# Copy lapacke include files
|
||||||
|
%if %{with system_lapack} && %{lapacke}
|
||||||
|
cp -a %{_includedir}/lapacke %{buildroot}%{_includedir}/%{name}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Fix i686-x86_64 multilib difference
|
||||||
|
%multilib_fix_c_header --file %{_includedir}/openblas/openblas_config.h
|
||||||
|
|
||||||
|
# Fix name of libraries: runtime CPU detection has none
|
||||||
|
suffix=""
|
||||||
|
# but archs that don't have it do have one
|
||||||
|
%ifarch armv7hl
|
||||||
|
suffix="_armv7"
|
||||||
|
%endif
|
||||||
|
slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so`
|
||||||
|
mv %{buildroot}%{_libdir}/${slibname}.a %{buildroot}%{_libdir}/lib%{name}.a
|
||||||
|
if [[ "$suffix" != "" ]]; then
|
||||||
|
sname=$(echo $slibname | sed "s|$suffix||g")
|
||||||
|
mv %{buildroot}%{_libdir}/${slibname}.so %{buildroot}%{_libdir}/${sname}.so
|
||||||
|
else
|
||||||
|
sname=${slibname}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install the OpenMP library
|
||||||
|
olibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o|g"`
|
||||||
|
install -D -p -m 644 openmp/${olibname}.a %{buildroot}%{_libdir}/lib%{name}o.a
|
||||||
|
if [[ "$suffix" != "" ]]; then
|
||||||
|
oname=$(echo $olibname | sed "s|$suffix||g")
|
||||||
|
else
|
||||||
|
oname=${olibname}
|
||||||
|
fi
|
||||||
|
install -D -p -m 755 openmp/${olibname}.so %{buildroot}%{_libdir}/${oname}.so
|
||||||
|
|
||||||
|
# Install the threaded library
|
||||||
|
plibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p|g"`
|
||||||
|
install -D -p -m 644 threaded/${plibname}.a %{buildroot}%{_libdir}/lib%{name}p.a
|
||||||
|
if [[ "$suffix" != "" ]]; then
|
||||||
|
pname=$(echo $plibname | sed "s|$suffix||g")
|
||||||
|
else
|
||||||
|
pname=${plibname}
|
||||||
|
fi
|
||||||
|
install -D -p -m 755 threaded/${plibname}.so %{buildroot}%{_libdir}/${pname}.so
|
||||||
|
|
||||||
|
# Install the 64-bit interface libraries
|
||||||
|
%if %build64
|
||||||
|
slibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64|g"`
|
||||||
|
install -D -p -m 644 serial64/${slibname64}.a %{buildroot}%{_libdir}/lib%{name}64.a
|
||||||
|
slibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64_|g"`
|
||||||
|
install -D -p -m 644 serial64_/${slibname64_}.a %{buildroot}%{_libdir}/lib%{name}64_.a
|
||||||
|
|
||||||
|
if [[ "$suffix" != "" ]]; then
|
||||||
|
sname64=$(echo ${slibname64} | sed "s|$suffix||g")
|
||||||
|
sname64_=$(echo ${slibname64_} | sed "s|$suffix||g")
|
||||||
|
else
|
||||||
|
sname64=${slibname64}
|
||||||
|
sname64_=${slibname64_}
|
||||||
|
fi
|
||||||
|
install -D -p -m 755 serial64/${slibname64}.so %{buildroot}%{_libdir}/${sname64}.so
|
||||||
|
install -D -p -m 755 serial64_/${slibname64_}.so %{buildroot}%{_libdir}/${sname64_}.so
|
||||||
|
|
||||||
|
olibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64|g"`
|
||||||
|
install -D -p -m 644 openmp64/${olibname64}.a %{buildroot}%{_libdir}/lib%{name}o64.a
|
||||||
|
olibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64_|g"`
|
||||||
|
install -D -p -m 644 openmp64_/${olibname64_}.a %{buildroot}%{_libdir}/lib%{name}o64_.a
|
||||||
|
|
||||||
|
if [[ "$suffix" != "" ]]; then
|
||||||
|
oname64=$(echo ${olibname64} | sed "s|$suffix||g")
|
||||||
|
oname64_=$(echo ${olibname64_} | sed "s|$suffix||g")
|
||||||
|
else
|
||||||
|
oname64=${olibname64}
|
||||||
|
oname64_=${olibname64_}
|
||||||
|
fi
|
||||||
|
install -D -p -m 755 openmp64/${olibname64}.so %{buildroot}%{_libdir}/${oname64}.so
|
||||||
|
install -D -p -m 755 openmp64_/${olibname64_}.so %{buildroot}%{_libdir}/${oname64_}.so
|
||||||
|
|
||||||
|
plibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64|g"`
|
||||||
|
install -D -p -m 644 threaded64/${plibname64}.a %{buildroot}%{_libdir}/lib%{name}p64.a
|
||||||
|
plibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64_|g"`
|
||||||
|
install -D -p -m 644 threaded64_/${plibname64_}.a %{buildroot}%{_libdir}/lib%{name}p64_.a
|
||||||
|
|
||||||
|
if [[ "$suffix" != "" ]]; then
|
||||||
|
pname64=$(echo $plibname64 | sed "s|$suffix||g")
|
||||||
|
pname64_=$(echo $plibname64_ | sed "s|$suffix||g")
|
||||||
|
else
|
||||||
|
pname64=${plibname64}
|
||||||
|
pname64_=${plibname64_}
|
||||||
|
fi
|
||||||
|
install -D -p -m 755 threaded64/${plibname64}.so %{buildroot}%{_libdir}/${pname64}.so
|
||||||
|
install -D -p -m 755 threaded64_/${plibname64_}.so %{buildroot}%{_libdir}/${pname64_}.so
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Fix symlinks
|
||||||
|
pushd %{buildroot}%{_libdir}
|
||||||
|
# Serial libraries
|
||||||
|
ln -sf ${sname}.so lib%{name}.so
|
||||||
|
ln -sf ${sname}.so lib%{name}.so.0
|
||||||
|
# OpenMP libraries
|
||||||
|
ln -sf ${oname}.so lib%{name}o.so
|
||||||
|
ln -sf ${oname}.so lib%{name}o.so.0
|
||||||
|
# Threaded libraries
|
||||||
|
ln -sf ${pname}.so lib%{name}p.so
|
||||||
|
ln -sf ${pname}.so lib%{name}p.so.0
|
||||||
|
|
||||||
|
%if %build64
|
||||||
|
# Serial libraries
|
||||||
|
ln -sf ${sname64}.so lib%{name}64.so
|
||||||
|
ln -sf ${sname64}.so lib%{name}64.so.0
|
||||||
|
ln -sf ${sname64_}.so lib%{name}64_.so
|
||||||
|
ln -sf ${sname64_}.so lib%{name}64_.so.0
|
||||||
|
# OpenMP libraries
|
||||||
|
ln -sf ${oname64}.so lib%{name}o64.so
|
||||||
|
ln -sf ${oname64}.so lib%{name}o64.so.0
|
||||||
|
ln -sf ${oname64_}.so lib%{name}o64_.so
|
||||||
|
ln -sf ${oname64_}.so lib%{name}o64_.so.0
|
||||||
|
# Threaded libraries
|
||||||
|
ln -sf ${pname64}.so lib%{name}p64.so
|
||||||
|
ln -sf ${pname64}.so lib%{name}p64.so.0
|
||||||
|
ln -sf ${pname64_}.so lib%{name}p64_.so
|
||||||
|
ln -sf ${pname64_}.so lib%{name}p64_.so.0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{execstack}
|
||||||
|
# Get rid of executable stacks
|
||||||
|
for lib in %{buildroot}%{_libdir}/libopenblas*.so; do
|
||||||
|
execstack -c $lib
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Get rid of generated CMake config
|
||||||
|
rm -rf %{buildroot}%{_libdir}/cmake
|
||||||
|
# Get rid of generated pkgconfig
|
||||||
|
rm -rf %{buildroot}%{_libdir}/pkgconfig
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
%ldconfig_scriptlets openmp
|
||||||
|
|
||||||
|
%ldconfig_scriptlets threads
|
||||||
|
|
||||||
|
%if %build64
|
||||||
|
%ldconfig_scriptlets openmp64
|
||||||
|
%ldconfig_scriptlets openmp64_
|
||||||
|
|
||||||
|
%ldconfig_scriptlets serial64
|
||||||
|
%ldconfig_scriptlets serial64_
|
||||||
|
|
||||||
|
%ldconfig_scriptlets threads64
|
||||||
|
%ldconfig_scriptlets threads64_
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license serial/LICENSE
|
||||||
|
%doc serial/Changelog.txt serial/GotoBLAS*
|
||||||
|
|
||||||
|
%files serial
|
||||||
|
%{_libdir}/lib%{name}-*.so
|
||||||
|
%{_libdir}/lib%{name}.so.*
|
||||||
|
|
||||||
|
%files openmp
|
||||||
|
%{_libdir}/lib%{name}o-*.so
|
||||||
|
%{_libdir}/lib%{name}o.so.*
|
||||||
|
|
||||||
|
%files threads
|
||||||
|
%{_libdir}/lib%{name}p-*.so
|
||||||
|
%{_libdir}/lib%{name}p.so.*
|
||||||
|
|
||||||
|
%if %build64
|
||||||
|
%files serial64
|
||||||
|
%{_libdir}/lib%{name}64-*.so
|
||||||
|
%{_libdir}/lib%{name}64.so.*
|
||||||
|
|
||||||
|
%files openmp64
|
||||||
|
%{_libdir}/lib%{name}o64-*.so
|
||||||
|
%{_libdir}/lib%{name}o64.so.*
|
||||||
|
|
||||||
|
%files threads64
|
||||||
|
%{_libdir}/lib%{name}p64-*.so
|
||||||
|
%{_libdir}/lib%{name}p64.so.*
|
||||||
|
|
||||||
|
%files serial64_
|
||||||
|
%{_libdir}/lib%{name}64_-*.so
|
||||||
|
%{_libdir}/lib%{name}64_.so.*
|
||||||
|
|
||||||
|
%files openmp64_
|
||||||
|
%{_libdir}/lib%{name}o64_-*.so
|
||||||
|
%{_libdir}/lib%{name}o64_.so.*
|
||||||
|
|
||||||
|
%files threads64_
|
||||||
|
%{_libdir}/lib%{name}p64_-*.so
|
||||||
|
%{_libdir}/lib%{name}p64_.so.*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/%{name}/
|
||||||
|
%{_libdir}/lib%{name}.so
|
||||||
|
%{_libdir}/lib%{name}o.so
|
||||||
|
%{_libdir}/lib%{name}p.so
|
||||||
|
%if %build64
|
||||||
|
%{_libdir}/lib%{name}64.so
|
||||||
|
%{_libdir}/lib%{name}o64.so
|
||||||
|
%{_libdir}/lib%{name}p64.so
|
||||||
|
%{_libdir}/lib%{name}64_.so
|
||||||
|
%{_libdir}/lib%{name}o64_.so
|
||||||
|
%{_libdir}/lib%{name}p64_.so
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files static
|
||||||
|
%{_libdir}/lib%{name}.a
|
||||||
|
%{_libdir}/lib%{name}o.a
|
||||||
|
%{_libdir}/lib%{name}p.a
|
||||||
|
%if %build64
|
||||||
|
%{_libdir}/lib%{name}64.a
|
||||||
|
%{_libdir}/lib%{name}o64.a
|
||||||
|
%{_libdir}/lib%{name}p64.a
|
||||||
|
%{_libdir}/lib%{name}64_.a
|
||||||
|
%{_libdir}/lib%{name}o64_.a
|
||||||
|
%{_libdir}/lib%{name}p64_.a
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Sep 18 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.10-6
|
||||||
|
- Fix incorrect result of cblas_zdotc_sub on ppc64le (BZ #1878449).
|
||||||
|
|
||||||
|
* Sat Aug 29 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.10-5
|
||||||
|
- Fix unresolved bfloat16 datatype (BZ #1873667).
|
||||||
|
|
||||||
|
* Fri Aug 14 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.10-4
|
||||||
|
- Obsolete Rblas package (BZ #1849966).
|
||||||
|
|
||||||
|
* Tue Aug 11 2020 Jeff Law <law@redhat.com> - 0.3.10-3
|
||||||
|
- Disable LTO
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.10-2
|
||||||
|
- Include upstream patch 2672 to fix test suite on systems with few CPUs.
|
||||||
|
|
||||||
|
* Mon Jun 15 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.10-1
|
||||||
|
- Update to 0.3.10.
|
||||||
|
|
||||||
|
* Thu May 28 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.9-3
|
||||||
|
- Enable USE_LOCKING in the sequential versions of the library for
|
||||||
|
thread safety.
|
||||||
|
|
||||||
|
* Thu Apr 02 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.9-2
|
||||||
|
- Patch for BZ #1820131.
|
||||||
|
|
||||||
|
* Mon Mar 02 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.9-1
|
||||||
|
- Update to 0.3.9.
|
||||||
|
|
||||||
|
* Tue Feb 11 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.8-1
|
||||||
|
- Update to 0.3.8; dynamic runtime cpu detection on all architectures.
|
||||||
|
- Also updates bundled LAPACK to 3.9.0.
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.7-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Dec 11 2019 Dominik Mierzejewski <rpm@greysector.net> - 0.3.7-2
|
||||||
|
- enable C++ thread safety test where possible
|
||||||
|
|
||||||
|
* Mon Aug 12 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.7-1
|
||||||
|
- Update to 0.3.7.
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.6-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 02 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.6-2
|
||||||
|
- Rebuild since older build doesn't show up in updates system.
|
||||||
|
|
||||||
|
* Tue Apr 30 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.6-1
|
||||||
|
- Update to 0.3.6.
|
||||||
|
|
||||||
|
* Tue Feb 26 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-5
|
||||||
|
- Even more assembly kernel patches.
|
||||||
|
|
||||||
|
* Mon Feb 25 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-4
|
||||||
|
- Another assembly kernel patch.
|
||||||
|
|
||||||
|
* Sun Feb 17 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-3
|
||||||
|
- Patch assembly kernels to satisfy gcc 9 demands.
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.5-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 07 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-1
|
||||||
|
- Update to 0.3.5, with dynamic CPU detection on aarch64.
|
||||||
|
|
||||||
|
* Fri Nov 09 2018 Nikola Forró <nforro@redhat.com> - 0.3.3-3
|
||||||
|
- Fix i686-x86_64 multilib difference.
|
||||||
|
- Get rid of executable stack in libRblas.so.
|
||||||
|
|
||||||
|
* Sat Sep 29 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.3-2
|
||||||
|
- Fix segfault (BZ #1634060).
|
||||||
|
|
||||||
|
* Sun Sep 09 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.3-1
|
||||||
|
- Update to 0.3.3.
|
||||||
|
|
||||||
|
* Wed Aug 29 2018 Dan Horák <dan[at]danny.cz> - 0.3.2-5
|
||||||
|
- Fix precision in generic target on s390x
|
||||||
|
|
||||||
|
* Fri Aug 24 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.2-4
|
||||||
|
- Patch to avoid threading issues.
|
||||||
|
|
||||||
|
* Fri Aug 24 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.2-3
|
||||||
|
- Add missing %%{optflags} to COMMON (see discussion in #1619074).
|
||||||
|
|
||||||
|
* Wed Aug 15 2018 Dan Horák <dan[at]danny.cz> - 0.3.2-2
|
||||||
|
- Explicitly set the target to generic on s390x to avoid surprises (#1615760)
|
||||||
|
|
||||||
|
* Thu Aug 02 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.2-1
|
||||||
|
- Update to 0.3.2.
|
||||||
|
|
||||||
|
* Sun Jul 22 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.1-3
|
||||||
|
- Fix crash with multiple instances (BZ #1605231).
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jul 01 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.1-1
|
||||||
|
- Update to 0.3.1.
|
||||||
|
|
||||||
|
* Mon Jun 11 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.0-2
|
||||||
|
- Split sequential libraries from core package to openblas-serial.
|
||||||
|
|
||||||
|
* Thu May 24 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.0-1
|
||||||
|
- Update to 0.3.0.
|
||||||
|
|
||||||
|
* Thu Mar 22 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-10
|
||||||
|
- Disable CPU affinity unintentionally enabled upstream (BZ #1558091).
|
||||||
|
|
||||||
|
* Sun Mar 04 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-9
|
||||||
|
- Clean up obsolete conditionals for 64 bit builds in spec file.
|
||||||
|
|
||||||
|
* Tue Feb 27 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-8
|
||||||
|
- Use %%__global_ldflags instead of %%build_ldflags that doesn't work on
|
||||||
|
all distributions.
|
||||||
|
|
||||||
|
* Tue Feb 27 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-7
|
||||||
|
- Honor Fedora linker flags (BZ #1548750).
|
||||||
|
|
||||||
|
* Wed Feb 14 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-6
|
||||||
|
- Drop arch-dependent buildrequires (BZ #1545201); no changes to package
|
||||||
|
(only affects packages custom built with --with system_lapack).
|
||||||
|
|
||||||
|
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.20-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 30 2018 Florian Weimer <fweimer@redhat.com> - 0.2.20-4
|
||||||
|
- Rebuild for GCC 8
|
||||||
|
|
||||||
|
* Thu Sep 14 2017 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-3
|
||||||
|
- Simplify spec, dropping extra lib arguments.
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.20-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 28 2017 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-1
|
||||||
|
- Update to 0.2.20.
|
||||||
|
|
||||||
|
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.19-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon May 29 2017 Dan Horák <dan[at]danny.cz> - 0.2.19-11
|
||||||
|
- add generic s390x support (#1442048)
|
||||||
|
|
||||||
|
* Mon Mar 20 2017 Orion Poplawski <orion@cora.nwra.com> - 0.2.19-10
|
||||||
|
- Drop openblas-srpm-macros version requirement
|
||||||
|
|
||||||
|
* Mon Mar 20 2017 Orion Poplawski <orion@cora.nwra.com> - 0.2.19-9
|
||||||
|
- Move openblas-srpm-macros to separate package
|
||||||
|
|
||||||
|
* Wed Mar 15 2017 Orion Poplawski <orion@cora.nwra.com> - 0.2.19-8
|
||||||
|
- Define %%openblas_arches for dependent packages to use
|
||||||
|
|
||||||
|
* Mon Feb 13 2017 Björn Esser <besser82@fedoraproject.org> - 0.2.19-7
|
||||||
|
- Upgrade Patch4 to hopefully fully fix the issues on PPC64LE
|
||||||
|
|
||||||
|
* Fri Feb 03 2017 Björn Esser <besser82@fedoraproject.org> - 0.2.19-6
|
||||||
|
- Add Patch4 to fix register clobbers (BZ #1417385)
|
||||||
|
|
||||||
|
* Sat Jan 28 2017 Björn Esser <besser82@fedoraproject.org> - 0.2.19-5
|
||||||
|
- Rebuilt for GCC-7
|
||||||
|
|
||||||
|
* Wed Dec 14 2016 Tom Callaway <spot@fedoraproject.org> - 0.2.19-4
|
||||||
|
- build a copy of openblas that thinks it is Rblas
|
||||||
|
There are no code changes, except for libname and soname, it is identical to libopenblas.so.0
|
||||||
|
Unfortunately, while R itself is fine using a symlink from libopenblas.so.0 to libRblas.so
|
||||||
|
the larger R ecosystem becomes unhappy in this scenario.
|
||||||
|
|
||||||
|
* Thu Nov 03 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.19-3
|
||||||
|
- Fix linkage of OpenMP libraries (BZ #1391491).
|
||||||
|
|
||||||
|
* Thu Oct 20 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.19-2
|
||||||
|
- Actually use 8-bit integers in 64-bit interfaces (BZ #1382916).
|
||||||
|
|
||||||
|
* Tue Oct 18 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.19-1
|
||||||
|
- Update to 0.2.19.
|
||||||
|
|
||||||
|
* Wed Aug 17 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.18-5
|
||||||
|
- Revert "minor spec cleanups" by Peter Robinson.
|
||||||
|
|
||||||
|
* Wed Jul 13 2016 Peter Robinson <pbrobinson@fedoraproject.org> 0.2.18-4
|
||||||
|
- aarch64 has execstack in Fedora
|
||||||
|
- Minor spec cleanups
|
||||||
|
|
||||||
|
* Wed Jul 13 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.18-3
|
||||||
|
- Enable ppc64 and ppc64p7 architectures
|
||||||
|
based on Dan Horák's patch (BZ #1356189).
|
||||||
|
- Supply proper make flags to the tests.
|
||||||
|
|
||||||
|
* Tue Jul 12 2016 Jeff Bastian <jbastian@redhat.com> - 0.2.18-2
|
||||||
|
- update for aarch64
|
||||||
|
|
||||||
|
* Tue Apr 12 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.18-1
|
||||||
|
- Update to 0.2.18.
|
||||||
|
|
||||||
|
* Wed Apr 6 2016 Orion Poplawski <orion@cora.nwra.com> - 0.2.17-1
|
||||||
|
- Update to 0.2.17
|
||||||
|
|
||||||
|
* Fri Mar 18 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.16-3
|
||||||
|
- Include deprecated LAPACK functions.
|
||||||
|
|
||||||
|
* Wed Mar 16 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.16-2
|
||||||
|
- Fix library suffix on ppc64le.
|
||||||
|
|
||||||
|
* Tue Mar 15 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.16-1
|
||||||
|
- Update to 0.2.16.
|
||||||
|
|
||||||
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.15-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 12 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-5
|
||||||
|
- Need to use -frecursive to make LAPACK thread safe.
|
||||||
|
|
||||||
|
* Tue Jan 12 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-4
|
||||||
|
- Add version to bundled lapack provide.
|
||||||
|
|
||||||
|
* Mon Jan 11 2016 Orion Poplawski <orion@cora.nwra.com> - 0.2.15-3
|
||||||
|
- Allow conditional build with or without system lapack, default to without
|
||||||
|
|
||||||
|
* Tue Dec 01 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-2
|
||||||
|
- Enable armv7hl and ppc64le architectures.
|
||||||
|
- Build versions of the 64-bit libraries with an additional suffix
|
||||||
|
(BZ #1287541).
|
||||||
|
|
||||||
|
* Wed Oct 28 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-1
|
||||||
|
- Update to 0.2.15.
|
||||||
|
|
||||||
|
* Tue Aug 04 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.2.14-4
|
||||||
|
- Use new execstack (#1247795)
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.14-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun May 3 2015 Peter Robinson <pbrobinson@fedoraproject.org> 0.2.14-2
|
||||||
|
- Run ldconfig on 64 builds too
|
||||||
|
|
||||||
|
* Wed Mar 25 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.14-1
|
||||||
|
- Update to 0.2.14.
|
||||||
|
|
||||||
|
* Fri Dec 19 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.13-2
|
||||||
|
- Bump spec due to LAPACK rebuild.
|
||||||
|
|
||||||
|
* Fri Dec 05 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.13-1
|
||||||
|
- Update to 0.2.13.
|
||||||
|
|
||||||
|
* Mon Oct 13 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.12-1
|
||||||
|
- Update to 0.2.12.
|
||||||
|
|
||||||
|
* Mon Aug 18 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.11-1
|
||||||
|
- Update to 0.2.11.
|
||||||
|
|
||||||
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.10-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 16 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.10-1
|
||||||
|
- Update to 0.2.10.
|
||||||
|
|
||||||
|
* Wed Jun 11 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.9-1
|
||||||
|
- Increase maximum amount of cores from 32 to 128.
|
||||||
|
- Add 64-bit interface support. (BZ #1088256)
|
||||||
|
- Update to 0.2.9. (BZ #1043083)
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.8-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Aug 07 2013 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.8-1
|
||||||
|
- Update to 0.2.8.
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.7-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 23 2013 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.7-1
|
||||||
|
- Update to 0.2.7.
|
||||||
|
- Use OpenBLAS versions of LAPACK functions, as they seem to be
|
||||||
|
working now.
|
||||||
|
|
||||||
|
* Mon Jul 08 2013 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-10
|
||||||
|
- Due to long standing bug, replace all OpenBLAS LAPACK functions with
|
||||||
|
generic ones, so that package can finally be released in stable.
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.5-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 15 2013 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-8
|
||||||
|
- Added LAPACKE include files.
|
||||||
|
|
||||||
|
* Mon Jan 14 2013 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-7
|
||||||
|
- Fix build on RHEL5 and ppc architecture.
|
||||||
|
|
||||||
|
* Mon Dec 24 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-6
|
||||||
|
- Review fixes.
|
||||||
|
|
||||||
|
* Fri Dec 21 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-5
|
||||||
|
- Disable LAPACKE support on distributions where it is not available due to
|
||||||
|
a too old version of lapack.
|
||||||
|
|
||||||
|
* Mon Dec 17 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-4
|
||||||
|
- Don't use reference LAPACK functions that have optimized implementation.
|
||||||
|
|
||||||
|
* Wed Dec 12 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-3
|
||||||
|
- Use system version of LAPACK.
|
||||||
|
|
||||||
|
* Mon Nov 26 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-2
|
||||||
|
- Fixed 32-bit build, and build on EPEL 5.
|
||||||
|
|
||||||
|
* Mon Nov 26 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.5-1
|
||||||
|
- Update to 0.2.5.
|
||||||
|
|
||||||
|
* Thu Oct 06 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 0.1-2.alpha2.4
|
||||||
|
- Added documentation.
|
||||||
|
|
||||||
|
* Sun Sep 18 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 0.1-1.alpha2.4
|
||||||
|
- First release.
|
Loading…
Reference in New Issue
Block a user