ndarray-linalg icon indicating copy to clipboard operation
ndarray-linalg copied to clipboard

Mandatory ndarray/blas feature ?

Open cassiersg opened this issue 4 years ago • 1 comments

ndarray-linalg unconditionally enables the blas feature of ndarray. AFAICT, this feature only changes performance of ndarray matrix multiplication, hence it should not be mandatory to get ndarray-linalg running, right ?

There are some use-cases where, despite depending on LAPACK (hence having a BLAS implementation available), one could prefer to not use it for ndarray matrix multiplication. A simple example of this is when the BLAS implementation is slower than the default matrixmultiply backend of ndarray. (My use-case is that my LAPACK/BLAS library is not thread-safe, hence I have to lock around ndarray-linalg operations, but I don't want to take that lock for all matrix multiplications.)

cassiersg avatar Apr 26 '21 15:04 cassiersg

I was interested in this as well. It seems like the features theoretically allow you to build the library without blas, but that doesn't actually work on my computer (lots of rust-lld: error: undefined symbol: dgelsd_ type errors when you try to run the tests, for example).

In my case I just want to be able to build without it for faster compile times when performance is not an issue (CI, etc.) and then with it for a release build. netlib is slightly faster than openblas but it's still very slow to build.

jstrong-lhava avatar Nov 13 '25 05:11 jstrong-lhava