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