Commit Graph

20 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
idontgetoutmuch
739cdb368e Ensure blas produces pkg config files (#67629)
blas: produce pkgconfig file
2019-09-03 16:34:45 +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
Jake Waksbaum
8374400cec fflas-ffpack: Add darwin support 2018-08-18 20:28:06 +00:00
Ryan Mulligan
1aa5bb44ca blas: 3.7.1 -> 3.8.0
Semi-automatic update. These checks were performed:

- built on NixOS
- found 3.8.0 in filename of file in /nix/store/6j28cb5b114fxj7x7wpwv8mdbiqxq1fj-blas-3.8.0
2018-03-04 18:51:48 +00:00
Nikolay Amiantov
098c6825e0 blas: 3.5.0 -> 3.7.1 2017-09-25 22:46:44 +03:00
Silvan Mosberger
f5fa5fa4d6 pkgs: refactor needless quoting of homepage meta attribute (#27809)
* pkgs: refactor needless quoting of homepage meta attribute

A lot of packages are needlessly quoting the homepage meta attribute
(about 1400, 22%), this commit refactors all of those instances.

* pkgs: Fixing some links that were wrongfully unquoted in the previous
commit

* Fixed some instances
2017-08-01 22:03:30 +02:00
Daiderd Jordan
f240276000
blas: fix darwin library id 2017-04-27 23:25:07 +02:00
Tuomas Tynkkynen
21f17d69f6 treewide: Add lots of meta.platforms
Build-tested on x86_64 Linux & Mac.
2016-08-02 21:42:43 +03:00
Vladimír Čunát
ffb72182a6 blas: fix remains of hardcoded version
Thanks to @knedlsepp for pointing out
2b71fdbbc3 (commitcomment-14919659)
2015-12-11 10:25:40 +01:00
Vladimír Čunát
2b71fdbbc3 blas: fix by updating, fixes #10420, close #10545
The new URL also looks more stable.
2015-10-22 20:13:33 +02:00
Mateusz Kowalczyk
007f80c1d0 Turn more licenses into lib.licenses style
Should eval cleanly, as far as -A tarball tells me.

Relevant: issue #2999, issue #739
2014-11-06 00:48:16 +00:00
Jonas Hoersch
5ddefd6155 blas: update to version 20110419 2013-09-17 16:40:34 +02:00
Ludovic Courtès
bf08f68ccb blas: really fix installation on FreeBSD 2012-10-18 17:35:00 +02:00
Ludovic Courtès
dc3fafe06d blas: `install -d' on FreeBSD 2012-10-18 10:21:24 +02:00
David Guibert
3563194637 compile static libraries for blas and lapack
svn path=/nixpkgs/trunk/; revision=22549
2010-07-09 13:15:56 +00:00
Eelco Dolstra
0a882d423b * Fix stdenv evaluation - use ${stdenv.shell} instead of
${stdenv.bash}/bin/bash.

svn path=/nixpkgs/trunk/; revision=19723
2010-01-29 00:17:59 +00:00
Peter Simons
6a61d675bb pkgs/development/libraries/science/math/blas: set license to "public domain"
It's not entirely clear whether BLAS is in the public domain, but according to
<87636orixx.fsf@gnu.org> Debian did classify it that way, and the license text
sure feels like the authors intend the package to be in the public domain. So
here we are.

svn path=/nixpkgs/trunk/; revision=19686
2010-01-26 19:28:03 +00:00
Peter Simons
a5030f06df pkgs/development/libraries/science/math/blas: added BLAS version 20070405
svn path=/nixpkgs/trunk/; revision=19671
2010-01-26 14:53:08 +00:00