Commit Graph

39 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
Matthew Bauer 90326ba624 lapack: enable shared libraries, cblas, and tests 2020-04-17 16:17:12 -05:00
Michael Reilly 84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Markus Kowalewski 7e44c6dee6
liblapack: 3.8.0 -> 3.9.0 2019-11-24 11:47:50 +01:00
Markus Kowalewski ecd20d2166
liblapack: remove optimized blas flag.
This cmake flag has no effect since no external blas
library is provided in the build inputs.
2019-09-15 11:39:58 +02:00
Markus Kowalewski fc7374176f
liblapack: build LAPACKE C api 2019-09-15 11:39:58 +02:00
volth 08f68313a4 treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
volth c814d72b51 treewide: name -> pname 2019-08-17 10:54:38 +00:00
volth f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Matthew Bauer d492f53faf
Merge pull request #50527 from matthewbauer/ninja-check-phase
Add check phase to ninja setup hook
2018-11-20 16:55:12 -06:00
Matthew Bauer 2c47a4229f treewide: remove ctest usages
These are already in the generated makefiles!
2018-11-18 19:31:02 -06:00
Matthew Bauer 95373d3634 atlas: remove
atlas is broken and can apparently be removed.

Fixes #49594
2018-11-04 20:23:12 -06:00
volth 6d2857a311 [bot] treewide: remove unused 'inherit' in let blocks 2018-07-20 19:38:19 +00:00
Timo Kaufmann ca9ea31ae1 liblapack: 3.4.1 -> 3.8.0 2018-05-06 21:12:01 +02: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
Frederik Rietdijk 9b66b5c2cc liblapack: use python2 2016-10-18 23:16:05 +02:00
Peter Simons 8e462995ba Bring my stdenv.lib.maintainers user name in line with my github nick. 2016-05-16 22:49:55 +02:00
Peter Simons d3073741a3 Merge pull request #8042 from adnelson/liblapack_atlas_dependency_optional
Liblapack atlas dependency optional
2015-05-30 19:25:54 +02:00
Allen Nelson e001340cf6 returned to two-file structure for liblapack 2015-05-28 21:49:06 -05:00
Peter Simons 99273a6716 Merge pull request #8047 from nckx/master
Don't use "with licenses;" for single licences
2015-05-28 22:14:53 +02:00
Peter Simons bcd5dc6bac Merge pull request #8023 from thinkpad20/pure_liblapack
added cmake flag to prevent autodetection of SDK directory
2015-05-28 21:44:07 +02:00
Allen Nelson 2c125cf37a removed default dependency of liblapack on ATLAS. was causing an unnecessary double-build of atlas 2015-05-28 12:39:49 -05:00
Tobias Geerinckx-Rice 158e1cfdd0 Don't use "with licenses;" for single licences
And don't use square brackets on such lines.
2015-05-28 19:20:29 +02:00
Tobias Geerinckx-Rice b2d7f4b1ba Use common licence attributes from lib/licenses.nix
Many (less easily automatically converted) old-style strings
remain.

Where there was any possible ambiguity about the exact version or
variant intended, nothing was changed. IANAL, nor a search robot.

Use `with stdenv.lib` wherever it makes sense.
2015-05-27 22:00:06 +02:00
Allen Nelson 6eb8ff878d added cmake flag to prevent autodetection of SDK directory 2015-05-27 12:42:40 -07:00
Michael Raskin 33ef69390b Fix Julia 0.3.0 build (for most purposes). Not making default yet because it is unclear if I missed something important. Failed to make it use external openblas and lapack correctly… 2014-08-24 00:24:55 +04:00
Michael Raskin d2539c6ff5 Adding Julia 0.3.0: some progress, but doesn't work yet 2014-08-21 22:09:55 +04:00
Peter Simons a940651968 liblapack: add myself as a maintainer and enable Hydra builds (in stdenv-updates) 2013-08-16 22:45:30 +02:00
Peter Simons 3df0409cb6 liblapack: propagate the 'shared' flag to atlas 2013-07-04 13:42:47 +02:00
Eelco Dolstra ab3eeabfed Rename buildNativeInputs -> nativeBuildInputs
Likewise for propagatedBuildNativeInputs, etc.  "buildNativeInputs"
sounds like an imperative rather than a noun phrase.
2012-12-28 19:20:09 +01:00
Michael Raskin 901574fe8a Julia language: update to a fresh version
Update julia and some of its dependencies

Split PCRE because a lot of packages depend on it and I am not sure we
want to test them in a hurry (and Julia specifies exact version).
2012-08-02 17:48:36 +04:00
Michael Raskin 3c69bcf348 Support shared library build; tests do not currently work for shared build.
svn path=/nixpkgs/trunk/; revision=33613
2012-04-05 12:18:56 +00:00
Lluís Batlle i Rossell 4d4d324776 Making liblapack do the check phase
svn path=/nixpkgs/trunk/; revision=32494
2012-02-22 22:41:27 +00:00
Lluís Batlle i Rossell 5e2de19cc1 Fixing octave, so plot(1) works.
Linking octave with clapack did not work.

I updated lapack, and additionally I build it with atlas, instead of blas. That should give
better performance. I don't know if atlas builds everywhere though.

On the other hand, maybe some programs linking with liblapack will fail. We'll have to check
the hydra reports.

I plan to remove clapack; liblapack provides a C interface too.


svn path=/nixpkgs/trunk/; revision=32464
2012-02-21 21:43:44 +00: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 30bbff2b68 pkgs/development/libraries/science/math/liblapack: fixed license tag
Thanks to Ludovic Courtès for pointing that out.

svn path=/nixpkgs/trunk/; revision=19687
2010-01-26 19:28:09 +00:00
Peter Simons 8cb6ced793 pkgs/development/libraries/science/math/liblapack: fixed build and updated to version 3.2.1
svn path=/nixpkgs/trunk/; revision=19672
2010-01-26 14:53:13 +00:00
Pjotr Prins 2391d84867 Two math packages
svn path=/nixpkgs/trunk/; revision=12955
2008-10-05 09:01:59 +00:00