Mandatory ndarray/blas feature ?

Open
#282 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
rust
Domain
data

Research direction

Start by tracing how ndarray-linalg declares and enables ndarray's blas feature, then check the feature configuration and dependency behavior involved. Compare the current mandatory setup with the requested option to use ndarray's default matrix-multiplication backend while retaining LAPACK support; done means the choice is no longer mandatory and the relevant behavior is verified.

Written by the indexing model from the issue text.

Description

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.)

Dominant language
Rust
Stars
452
Forks
95
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rust-ndarray/ndarray-linalg

All issues in rust-ndarray/ndarray-linalg

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.