Commit Graph

105 Commits

Author SHA1 Message Date
Zhaofeng Li
dd39a58f90 openblas: Enable riscv64-linux 2021-06-16 13:47:42 -07:00
Markus Kowalewski
5946bc724f
openblas: disable AVX512, make optional
This effectly reverts 383075f38b.

Some AVX512 optimized kernels seem to be broken in openblas.
See https://github.com/NixOS/nixpkgs/issues/124250.
2021-05-25 10:59:42 +02:00
Markus Kowalewski
1c26edbf8d
openblas: 0.3.13 -> 0.3.15 2021-05-07 17:39:12 +02:00
Mateusz Kowalczyk
60ed2deee5 openblas: Allow setting DYNAMIC_ARCH 2021-04-28 14:40:23 +09:00
mschwaig
de2c3e08c0
openblas: apply patch to prevent SIGILL on aarch64 (#117004)
The applied patch contains the changes from this PR:
https://github.com/xianyi/OpenBLAS/pull/3060

This patch prevents gcc from reordering instructions in a way
that can cause crashes with SIGILL on aarch64.

This issue crashes python when importing numpy on aarch64:
https://github.com/numpy/numpy/issues/18131
2021-03-21 16:12:12 -04:00
Ivan Babrou
6c2c725485
openblas: aarch64-darwin target support (#116672) 2021-03-18 02:05:05 -04:00
Ben Siraphob
66e44425c6 pkgs/development/libraries: stdenv.lib -> lib 2021-01-21 19:11:02 -08:00
Jonathan Ringer
0137860077 openblas: 0.3.12 -> 0.3.13 2021-01-04 00:22:23 -08:00
github-actions[bot]
581059aed4
Merge staging-next into staging 2021-01-04 00:57:38 +00:00
John Ericson
f52263ced0 treewide: Start to break up static overlay
We can use use `stdenv.hostPlatform.isStatic` instead, and move the
logic per package. The least opionated benefit of this is that it makes
it much easier to replace packages with modified ones, as there is no
longer any issue of overlay order.

CC @FRidh @matthewbauer
2021-01-03 19:18:16 +00:00
Thomas Tuegel
c3356a6e1c
Merge pull request #97306 from danieldk/openblas-avx512
openblas: re-enable AVX512 support
2020-12-29 05:43:05 -06:00
TredwellGit
d1d536cc07 openblas: 0.3.10 -> 0.3.12
https://github.com/xianyi/OpenBLAS/releases/tag/v0.3.11
https://github.com/xianyi/OpenBLAS/releases/tag/v0.3.12
2020-11-01 10:58:02 +01:00
Andreas Rammhold
f715602feb Revert "openblas: 0.3.10 -> 0.3.12"
This reverts commit e1a59dddd0. Testing
the PR succeeded for me as The previously half-done changes were already
reverted without me merging.
2020-10-28 10:00:54 +01:00
Andreas Rammhold
840c20169e
Merge pull request #101715 from r-ryantm/auto-update/openblas
openblas: 0.3.10 -> 0.3.12
2020-10-28 09:57:20 +01:00
R. RyanTM
e1a59dddd0 openblas: 0.3.10 -> 0.3.12 2020-10-28 09:49:29 +01:00
Frederik Rietdijk
4e29151910 Revert "Merge pull request #101780 from glittershark/bump-openblas"
Hash is updated but not the version.

This reverts commit 8b98955451, reversing
changes made to 5e2fde0a4f.
2020-10-28 09:47:48 +01:00
Griffin Smith
3b4cd4f4da openblas: 0.3.10 -> 0.3.12 2020-10-26 19:24:23 -04:00
Frederik Rietdijk
692d219a93 Merge staging-next into staging 2020-10-06 10:25:58 +02:00
Jonathan Ringer
7902256cfd openblas: enable multiple outputs 2020-10-05 16:15:14 -07:00
Daniël de Kok
383075f38b openblas: re-enable AVX512 support
AVX512 support was disabled due to an issue in the AVX512 DGEMM
kernel:

https://github.com/NixOS/nixpkgs/issues/59708

However, this kernel has been replaced upstream a while ago:

https://github.com/xianyi/OpenBLAS/releases/tag/v0.3.8

And they have enabled AVX512 kernels since then.
2020-09-06 20:46:35 +02:00
R. RyanTM
f79c05b113 openblas: 0.3.9 -> 0.3.10 2020-06-19 10:59:46 +02:00
Ryan Burns
92d7b38e89 openblas: enable on ppc64le 2020-10-02 18:10:44 -07:00
Benjamin Hipple
706642091e mkl: include symlinks to versioned libblas.so.3 names
Some build systems look for this specifically.
2020-05-08 06:52:02 +02:00
Jonathan Ringer
c1e605dd6b openblas: also export unversioned libraries for linux 2020-05-08 06:52:02 +02:00
Markus Kowalewski
15cd0bd993 openblas: 0.3.8 -> 0.3.9 2020-05-01 09:02:51 +02:00
Matthew Bauer
5a500ff0ba blas,lapack: use correct name for library
To match the soname, we need to use libblas.so.3, liblapack.so.3.
2020-04-22 12:37:04 -05:00
Matthew Bauer
43873351ff blas/lapack: add wrapper for “alternative”s of BLAS/LAPACK provider
This is based on previous work for switching between BLAS and LAPACK
implementation in Debian[1] and Gentoo[2]. The goal is to have one way
to depend on the BLAS/LAPACK libraries that all packages must use. The
attrs “blas” and “lapack” are used to represent a wrapped BLAS/LAPACK
provider. Derivations that don’t care how BLAS and LAPACK are
implemented can just use blas and lapack directly. If you do care what
you get (perhaps for some CPP), you should verify that blas and lapack
match what you expect with an assertion.

The “blas” package collides with the old “blas” reference
implementation. This has been renamed to “blas-reference”. In
addition, “lapack-reference” is also included, corresponding to
“liblapack” from Netlib.org.

Currently, there are 3 providers of the BLAS and LAPACK interfaces:

- lapack-reference: the BLAS/LAPACK implementation maintained by netlib.org
- OpenBLAS: an optimized version of BLAS and LAPACK
- MKL: Intel’s unfree but highly optimized BLAS/LAPACK implementation

By default, the above implementations all use the “LP64” BLAS and
LAPACK ABI. This corresponds to “openblasCompat” and is the safest way
to use BLAS/LAPACK. You may received some benefits from “ILP64” or
8-byte integer BLAS at the expense of breaking compatibility with some
packages.

This can be switched at build time with an override like:

    import <nixpkgs> {
        config.allowUnfree = true;
        overlays = [(self: super: {
          lapack = super.lapack.override {
            lapackProvider = super.lapack-reference;
          };
          blas = super.blas.override {
            blasProvider = super.lapack-reference;
          };
        })];
      }

or, switched at runtime via LD_LIBRARY_PATH like:

    $ LD_LIBRARY_PATH=$(nix-build -E '(with import <nixpkgs> {}).lapack.override { lapackProvider = pkgs.mkl; is64bit = true; })')/lib:$(nix-build -E '(with import <nixpkgs> {}).blas.override { blasProvider = pkgs.mkl; is64bit = true; })')/lib ./your-blas-linked-binary

By default, we use OpenBLAS LP64 also known in Nixpkgs as
openblasCompat.

[1]: https://wiki.debian.org/DebianScience/LinearAlgebraLibraries
[2]: https://wiki.gentoo.org/wiki/Blas-lapack-switch
2020-04-17 16:23:55 -05:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Niklas Hambüchen
df907c4786 openblas: Add singleThreaded option. Off by default.
See https://github.com/xianyi/OpenBLAS/issues/2543
2020-04-08 13:46:04 +02:00
Tom Hall
c6c753668d openblas: disable optimisation pending fix
See https://github.com/xianyi/OpenBLAS/issues/2496
2020-03-14 18:06:59 +00:00
R. RyanTM
6222192872 openblas: 0.3.7 -> 0.3.8 2020-02-11 12:01:57 +00:00
Frederik Rietdijk
867552957f openblas: fix static musl build 2020-01-03 12:50:47 +01:00
Tobias Mayer
db5d3cdfe2 openblas: partially fix static build 2019-12-31 15:05:13 +01:00
Markus Kowalewski
6ff8958bef openblas: 0.3.6 -> 0.3.7 2019-08-18 11:49:24 +02:00
volth
46420bbaa3 treewide: name -> pname (easy cases) (#66585)
treewide replacement of

stdenv.mkDerivation rec {
  name = "*-${version}";
  version = "*";

to pname
2019-08-15 13:41:18 +01:00
volth
f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Niklas Hambüchen
8d5864eb47 openblas: Add enableStatic flag 2019-05-28 08:57:23 +02:00
Niklas Hambüchen
43fda1c96d openblas: 0.3.5 -> 0.3.6 2019-05-28 08:57:23 +02:00
Markus Kowalewski
6968c4f305 openblas: turn off AVX512 optimizations
The AVX512 optimization has a bug in openblas-0.3.5
and can also lead to slower code on Xeon Silver CPUs.

See https://github.com/xianyi/OpenBLAS/issues/1955
and https://github.com/xianyi/OpenBLAS/issues/2029
2019-04-27 07:07:49 +02:00
Markus Kowalewski
fa28a838f3
openblas: fix aarch64 build 2019-03-31 12:19:41 +02:00
Averell Dalton
d7806fe4ed openblas: adjust makeFlags handling 2019-02-23 09:13:57 +01:00
Will Dietz
32322da1a6 openblas: fix config breakage introduced for configs using 'false'
My earlier change mistakenly expected `toString false` to produce '0'
instead of the empty string, leading to unexpected config changes.

Intended to address issue mentioned here and in following discussion:

https://github.com/NixOS/nixpkgs/pull/53972#issuecomment-459981602

Sorry, folks!

(special-case handling of bools here makes this "cleanup" a bit
 less of an obvious win but hopefully still preferable overall :))

-----------

makeFlags in resulting derivation, according to this one-liner:

$ nix show-derivation -f . openblas|jq ".[].env.makeFlags"

before:
"BINARY=64 CC=cc CROSS= DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE= NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1"

after:
"BINARY=64 CC=cc CROSS=0 DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE=0 NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1"

Without knowing how `placeholder` works, it seems interesting if
entirely unrelated that the `PREFIX` is same for both! :). TIL.
2019-02-17 19:51:55 +01:00
Matthew Bauer
2433c575f0 openblas: fix on linux
This reverse changes made cfc4313 which broke builds on linux. Still
not sure why this broke Linux, but we can investigate it later.
“buildPackages.stdenv.cc” shouldn’t be put in nativeBuildInputs in
general. Either way, this restores hashes to before that commit.

thanks to @jethrokuan
2019-02-10 20:16:16 -05:00
Matthew Bauer
cfc43138cb openblas: fix on darwin
The openblas script relies on CC=clang for succesfully compiling on
Darwin systems. This seems like bad behavior, but we get things like
https://hydra.nixos.org/build/87657058 otherwise.

Fixes #55536.
2019-02-10 18:49:04 -05:00
Vladimír Čunát
5effa4e0f9
Merge branch 'master' into staging-next
Comments on conflicts:
- llvm: d6f401e1 vs. 469ecc70 - docs for 6 and 7 say the default is
  to build all targets, so we should be fine
- some pypi hashes: they were equivalent, just base16 vs. base32
2019-02-01 09:22:29 +01:00
Markus Kowalewski
57c37456db
openblas: make the optimazation target overridable 2019-01-29 14:34:02 +01:00
Will Dietz
1f0467005d openblas: 0.3.4 -> 0.3.5, rework a bit (#53972)
* openblas: simplify a bit, fix doCheck so tests are enabled non-cross.

* doCheck should be 'true' in (at least) the non-cross case,
  this looks like an inverted check that's largely benign
* doCheck will be set to 'false' in the cross case anyway,
  makeDerivation does this IIRC
* targetPrefix can be used without checking, probably by design

Derivation hash does change but no "real" functionality change intended.

* openblas: nix types for config attrs (hash-preserving)

* openblas: more nix-ification, merge in cross attrs, prefer to always set

(but set appropriately for cross and non-cross cases both)

* I'm not sure what NO_BINARY_MODE does,
  this change now sets explicitly false in the non-cross scenario
  (previously unset unless cross).
* Drop musl NO_AFFINITY case, will be removed in upgrade shortly

* openblas: 0.3.4 -> 0.3.5
2019-01-15 16:36:07 +01:00
Frederik Rietdijk
05ee1015bb openblas: fix cross-compilation 2019-01-15 10:11:33 +01:00
Bas van Dijk
72eae72223 openblas: fix build on x86_64-darwin
See: https://github.com/xianyi/OpenBLAS/issues/1926
2018-12-20 13:25:44 +01:00
Frederik Rietdijk
4deb04a97a openblas: 0.3.3 -> 0.3.4 2018-12-07 15:21:25 +01:00