Add support for BLAS Syrk

Open
#1,358 6 comments 3 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

Research direction

Start by locating the existing gemm integration and examining how it handles memory layout and strides. Compare that path with the BLAS syrk operation and determine how a gram-matrix call should be exposed; done means syrk support works for the described x.t().dot(x) case without computing redundant output.

Written by the indexing model from the issue text.

Description

enhancement

Hi.

Thank you guys for this awesome library.

In my application, I need to compute a gram matrix (basically, x.t().dot(x)).
Using gemm is wasteful, as the result is symmetric and the lower half is redundant, so using syrk in this case is twice as fast as gemm.

On a general note, it would be really useful if the library could also easily support calling any general BLAS / LAPACK function using appropriate idioms (like getting memory layout, strides, etc.)

Dominant language
Rust
Stars
4.3k
Forks
391
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

All issues in rust-ndarray/ndarray

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.