Merge pull request #97137 from danieldk/blis-0.7.0

blis: init at 0.7.0
This commit is contained in:
Daniël de Kok 2020-09-08 14:55:39 +02:00 committed by GitHub
commit 466522c919
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 86 additions and 6 deletions

View File

@ -187,14 +187,28 @@ self: super:
<listitem>
<para>
<link
xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD
BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
xlink:href="https://github.com/flame/blis">BLIS</link>
</para>
<para>
The AMD BLIS library, with attribute <literal>amd-blis</literal>,
provides a BLAS implementation. The complementary AMD LIBFLAME
library, with attribute <literal>amd-libflame</literal>, provides
a LAPACK implementation.
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>
<para>
<link
xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD
BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
</para>
<para>
The AMD fork of the BLIS library, with attribute
<literal>amd-blis</literal>, extends BLIS with optimizations for
modern AMD CPUs. The changes are usually submitted to
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>
</listitem>
</itemizedlist>

View 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" ];
};
}

View File

@ -1387,6 +1387,8 @@ in
blink1-tool = callPackage ../tools/misc/blink1-tool { };
blis = callPackage ../development/libraries/science/math/blis { };
bliss = callPackage ../applications/science/math/bliss { };
blobfuse = callPackage ../tools/filesystems/blobfuse { };