commit
466522c919
|
@ -184,6 +184,17 @@ self: super:
|
||||||
The Nixpkgs attribute is <literal>mkl</literal>.
|
The Nixpkgs attribute is <literal>mkl</literal>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link
|
||||||
|
xlink:href="https://github.com/flame/blis">BLIS</link>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
BLIS, available through the attribute
|
||||||
|
<literal>blis</literal>, is a framework for linear algebra kernels. In
|
||||||
|
addition, it implements the BLAS interface.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link
|
<link
|
||||||
|
@ -191,10 +202,13 @@ self: super:
|
||||||
BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
|
BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The AMD BLIS library, with attribute <literal>amd-blis</literal>,
|
The AMD fork of the BLIS library, with attribute
|
||||||
provides a BLAS implementation. The complementary AMD LIBFLAME
|
<literal>amd-blis</literal>, extends BLIS with optimizations for
|
||||||
library, with attribute <literal>amd-libflame</literal>, provides
|
modern AMD CPUs. The changes are usually submitted to
|
||||||
a LAPACK implementation.
|
the upstream BLIS project after some time. However, AMD BLIS
|
||||||
|
typically provides some performance improvements on AMD Zen CPUs.
|
||||||
|
The complementary AMD LIBFLAME library, with attribute
|
||||||
|
<literal>amd-libflame</literal>, provides a LAPACK implementation.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
64
pkgs/development/libraries/science/math/blis/default.nix
Normal file
64
pkgs/development/libraries/science/math/blis/default.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, perl
|
||||||
|
, python3
|
||||||
|
|
||||||
|
# Enable BLAS interface with 64-bit integer width.
|
||||||
|
, blas64 ? false
|
||||||
|
|
||||||
|
# Target architecture. x86_64 builds Intel and AMD kernels.
|
||||||
|
, withArchitecture ? "x86_64"
|
||||||
|
|
||||||
|
# Enable OpenMP-based threading.
|
||||||
|
, withOpenMP ? true
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
blasIntSize = if blas64 then "64" else "32";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "blis";
|
||||||
|
version = "0.7.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "flame";
|
||||||
|
repo = "blis";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "13g9kg7x8j9icg4frdq3wpl2cmp0jnh93mw48daa7ym399w17423";
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit blas64;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
perl
|
||||||
|
python3
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--enable-cblas"
|
||||||
|
"--blas-int-size=${blasIntSize}"
|
||||||
|
] ++ stdenv.lib.optionals withOpenMP [ "--enable-threading=openmp" ]
|
||||||
|
++ [ withArchitecture ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
patchShebangs configure build/flatten-headers.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
ln -s $out/lib/libblis.so.3 $out/lib/libblas.so.3
|
||||||
|
ln -s $out/lib/libblis.so.3 $out/lib/libcblas.so.3
|
||||||
|
ln -s $out/lib/libblas.so.3 $out/lib/libblas.so
|
||||||
|
ln -s $out/lib/libcblas.so.3 $out/lib/libcblas.so
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "BLAS-compatible linear algebra library";
|
||||||
|
homepage = "https://github.com/flame/blis";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = [ maintainers.danieldk ];
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1387,6 +1387,8 @@ in
|
||||||
|
|
||||||
blink1-tool = callPackage ../tools/misc/blink1-tool { };
|
blink1-tool = callPackage ../tools/misc/blink1-tool { };
|
||||||
|
|
||||||
|
blis = callPackage ../development/libraries/science/math/blis { };
|
||||||
|
|
||||||
bliss = callPackage ../applications/science/math/bliss { };
|
bliss = callPackage ../applications/science/math/bliss { };
|
||||||
|
|
||||||
blobfuse = callPackage ../tools/filesystems/blobfuse { };
|
blobfuse = callPackage ../tools/filesystems/blobfuse { };
|
||||||
|
|
Loading…
Reference in a new issue