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> <listitem>
<para> <para>
<link <link
xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD xlink:href="https://github.com/flame/blis">BLIS</link>
BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
</para> </para>
<para> <para>
The AMD BLIS library, with attribute <literal>amd-blis</literal>, BLIS, available through the attribute
provides a BLAS implementation. The complementary AMD LIBFLAME <literal>blis</literal>, is a framework for linear algebra kernels. In
library, with attribute <literal>amd-libflame</literal>, provides addition, it implements the BLAS interface.
a LAPACK implementation. </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> </para>
</listitem> </listitem>
</itemizedlist> </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 { }; 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 { };