Merge pull request #95083 from danieldk/manual-amd-blis
manual: add AMD BLIS/LIBFLAME to the BLAS/LAPACK list
This commit is contained in:
commit
f9eba87bf0
1 changed files with 22 additions and 7 deletions
|
@ -178,26 +178,40 @@ self: super:
|
|||
<para>
|
||||
<link
|
||||
xlink:href="https://software.intel.com/en-us/mkl">Intel
|
||||
MKL</link> (only works on x86 architecture, unfree)
|
||||
MKL</link> (only works on the x86_64 architecture, unfree)
|
||||
</para>
|
||||
<para>
|
||||
The Nixpkgs attribute is <literal>mkl</literal>.
|
||||
</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 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.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
Introduced in <link
|
||||
xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR
|
||||
#83888</link>, we are able to override the ‘blas’ and ‘lapack’
|
||||
packages to use different implementations, through the
|
||||
‘blasProvider’ and ‘lapackProvider’ argument. This can be used
|
||||
#83888</link>, we are able to override the <literal>blas</literal>
|
||||
and <literal>lapack</literal> packages to use different implementations,
|
||||
through the <literal>blasProvider</literal> and
|
||||
<literal>lapackProvider</literal> argument. This can be used
|
||||
to select a different provider. BLAS providers will have
|
||||
symlinks in <literal>$out/lib/libblas.so.3</literal> and
|
||||
<literal>$out/lib/libcblas.so.3</literal> to their respective
|
||||
BLAS libraries. Likewise, LAPACK providers will have symlinks
|
||||
in <literal>$out/lib/liblapack.so.3</literal> and
|
||||
<literal>$out/lib/liblapacke.so.3</literal> to their respective
|
||||
LAPCK libraries. For example, Intel MKL is both a BLAS and
|
||||
LAPACK libraries. For example, Intel MKL is both a BLAS and
|
||||
LAPACK provider. An overlay can be created to use Intel MKL
|
||||
that looks like:
|
||||
</para>
|
||||
|
@ -216,8 +230,9 @@ self: super:
|
|||
<para>
|
||||
This overlay uses Intel’s MKL library for both BLAS and LAPACK
|
||||
interfaces. Note that the same can be accomplished at runtime
|
||||
using <literal>LD_LIBRARY_PATH</literal> of libblas.so.3 and
|
||||
liblapack.so.3. For instance:
|
||||
using <literal>LD_LIBRARY_PATH</literal> of
|
||||
<literal>libblas.so.3</literal> and
|
||||
<literal>liblapack.so.3</literal>. For instance:
|
||||
</para>
|
||||
<programlisting>
|
||||
$ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
|
||||
|
|
Loading…
Reference in a new issue