Commit Graph

17 Commits

Author SHA1 Message Date
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
c0bw3b
9367367dfd Treewide: fix URL permanent redirects
Permanent redirects on homepages and/or source URLs
as reported by Repology
2019-11-16 01:41:23 +01:00
volth
7b8fb5c06c treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
volth
35d68ef143 treewide: remove redundant quotes 2019-08-26 21:40:19 +00: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
R. RyanTM
a7d85f5ae1 linbox: 1.6.2 -> 1.6.3 (#63288)
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/linbox/versions
2019-06-17 22:08:03 +02:00
volth
f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Timo Kaufmann
39ced10288 linbox: re-enable aarch64 and darwin builds 2019-05-24 16:05:39 +02:00
Timo Kaufmann
1e4140c2c9 linbox: 1.6.1 -> 1.6.2 2019-05-24 16:05:35 +02:00
Timo Kaufmann
4cb493f128 linbox: mark as broken on aarch64 and darwin 2019-05-13 20:11:29 +02:00
Timo Kaufmann
ecb522f617 linbox: 1.6.0 -> 1.6.1
https://trac.sagemath.org/ticket/26932#comment:20:
"In addition, we fixed some minor issues in the linbox-auto-install and the dependency version checking system and therefore release 1.6.1 consequently."
2019-05-13 18:27:39 +02:00
Timo Kaufmann
3814d7b14a
givaro: 4.0.4 -> 4.1.0, fflas-ffpack: 2.3.2 -> 2.4.0, linbox: 1.5.2 -> 1.6.0 (#61285)
The three packages are interdependent and need to be updated together,
like the main contributor did for sage:

https://trac.sagemath.org/ticket/24214
2019-05-11 16:09:07 +02:00
volth
5ad79dc4bb compilation for particular x86_64 architecture 2019-04-30 14:28:04 +00:00
Jake Waksbaum
b99b7c5ef8 linbox: Add darwin support 2018-08-19 13:55:48 -04:00
Timo Kaufmann
224f73b75a linbox: remove liblapack dependency
Not actually needed by any package and adds and indirect dependency to
atlas.
2018-06-30 01:20:46 +02:00
Timo Kaufmann
f07b330eff linbox: init at 1.5.2 2018-03-16 00:52:12 +01:00