New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
blis: init at 0.7.0 #97137
blis: init at 0.7.0 #97137
Conversation
''; | ||
|
||
meta = with stdenv.lib; { | ||
description = "BLAS-compatible linear algebra library"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we update the alternatives section of the manual to note this as an overlay choice?
https://hydra.nixos.org/build/126593072/download/1/nixpkgs/manual.html#sec-overlays-alternatives
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a commit that adds AMD BLIS to that section.
We should probably also add a warning to the MKL item (in a separate PR) that it currently does not make much sense to use it on non-Intel CPUs without further precautions. Except for dgemm
, MKL will currently use slow SSE kernels on e.g. AMD Zen and the old MKL_DEBUG_CPU_TYPE
workaround was removed in 2020.1. It's still possible to circumvent the Intel check, but it's a bit more involved now. This is all a big shame, because you can easily get a 50% performance improvement by using PyTorch with MKL, because it will use batched GEMM. With other BLAS libraries, PyTorch will just use normal GEMM and there will be no batch-level parallelization except for very small matrices (probably because batched GEMM is more involved in order to not trash the caches).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
was also able to build manual
https://github.com/NixOS/nixpkgs/pull/97137
1 package built:
blis
Motivation for this change
Add the BLIS linear algebra library, which also implements the (C)BLAS interface. This is an alternative to the
amd-blis
derivation and also has (working) kernels for Intel CPUs.Tested by building PyTorch with BLIS. Performance of a large transformer network is on-par with Intel MKL.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)