aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/doc/using/overlays.xml
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/doc/using/overlays.xml')
-rw-r--r--nixpkgs/doc/using/overlays.xml43
1 files changed, 36 insertions, 7 deletions
diff --git a/nixpkgs/doc/using/overlays.xml b/nixpkgs/doc/using/overlays.xml
index 3fa68e32a3c..f6e02b969ea 100644
--- a/nixpkgs/doc/using/overlays.xml
+++ b/nixpkgs/doc/using/overlays.xml
@@ -178,26 +178,54 @@ 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://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>
+ <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>
<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 +244,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