about summary refs log tree commit diff
path: root/pkgs/development/libraries/science
diff options
context:
space:
mode:
authorTom Hall <tahall256@protonmail.ch>2020-03-14 12:13:19 +0000
committerAlyssa Ross <hi@alyssa.is>2020-03-14 18:06:59 +0000
commitc6c753668dd80b38f42ae5355371b28e43af5649 (patch)
treee371c9507268f05c346a75fdb6462d8bf309f780 /pkgs/development/libraries/science
parente3e86f1b1294ee0f3db8add9d631324b2a5f193b (diff)
downloadnixlib-c6c753668dd80b38f42ae5355371b28e43af5649.tar
nixlib-c6c753668dd80b38f42ae5355371b28e43af5649.tar.gz
nixlib-c6c753668dd80b38f42ae5355371b28e43af5649.tar.bz2
nixlib-c6c753668dd80b38f42ae5355371b28e43af5649.tar.lz
nixlib-c6c753668dd80b38f42ae5355371b28e43af5649.tar.xz
nixlib-c6c753668dd80b38f42ae5355371b28e43af5649.tar.zst
nixlib-c6c753668dd80b38f42ae5355371b28e43af5649.zip
openblas: disable optimisation pending fix
See https://github.com/xianyi/OpenBLAS/issues/2496
Diffstat (limited to 'pkgs/development/libraries/science')
-rw-r--r--pkgs/development/libraries/science/math/openblas/0001-Disable-optimised-aarch64-dgemm_beta-pending-fix.patch26
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix6
2 files changed, 32 insertions, 0 deletions
diff --git a/pkgs/development/libraries/science/math/openblas/0001-Disable-optimised-aarch64-dgemm_beta-pending-fix.patch b/pkgs/development/libraries/science/math/openblas/0001-Disable-optimised-aarch64-dgemm_beta-pending-fix.patch
new file mode 100644
index 000000000000..1da1f3fb3190
--- /dev/null
+++ b/pkgs/development/libraries/science/math/openblas/0001-Disable-optimised-aarch64-dgemm_beta-pending-fix.patch
@@ -0,0 +1,26 @@
+From 6cb9aa7c69c20a677ca9fb1bc5fa1580e3236fbd Mon Sep 17 00:00:00 2001
+From: Tom Hall <tahall256@protonmail.ch>
+Date: Sat, 14 Mar 2020 11:55:45 +0000
+Subject: [PATCH] Disable optimised aarch64 dgemm_beta pending fix
+
+Identified as source of https://github.com/xianyi/OpenBLAS/issues/2496,
+but not yet fixed.
+---
+ kernel/arm64/KERNEL.ARMV8 | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/kernel/arm64/KERNEL.ARMV8 b/kernel/arm64/KERNEL.ARMV8
+index fe32d313..33d12f94 100644
+--- a/kernel/arm64/KERNEL.ARMV8
++++ b/kernel/arm64/KERNEL.ARMV8
+@@ -102,7 +102,6 @@ CDOTKERNEL     = zdot.S
+ ZDOTKERNEL     = zdot.S
+ DSDOTKERNEL    = dot.S
+ 
+-DGEMM_BETA     = dgemm_beta.S
+ SGEMM_BETA     = sgemm_beta.S
+ 
+ SGEMMKERNEL    =  sgemm_kernel_$(SGEMM_UNROLL_M)x$(SGEMM_UNROLL_N).S
+-- 
+2.24.1
+
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 9c411234357a..38ad31cc6257 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -123,6 +123,12 @@ stdenv.mkDerivation rec {
     buildPackages.stdenv.cc
   ];
 
+  # Disable an optimisation which seems to cause issues, pending an
+  # upstream fix: https://github.com/xianyi/OpenBLAS/issues/2496
+  patches = stdenv.lib.optionals stdenv.hostPlatform.isAarch64 [
+    ./0001-Disable-optimised-aarch64-dgemm_beta-pending-fix.patch
+  ];
+
   makeFlags = mkMakeFlagsFromConfig (config // {
     FC = "${stdenv.cc.targetPrefix}gfortran";
     CC = "${stdenv.cc.targetPrefix}${if stdenv.cc.isClang then "clang" else "cc"}";