Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
sarah-ek
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
8 ms
·
1.
▲
by
sarah-ek
2y ago
i have, yes. i can't speak for openblas or mkl, but im familiar with eigen and nalgebra's implementations to some extent nalgebra doesn't use blocking, so decompositions are handled one column (or row) at a time. this is grea
2.
▲
by
sarah-ek
2y ago
because we can do better
3.
▲
by
sarah-ek
2y ago
fair enough. i try to stay in touch with the eigen and nalgebra developers so i have a good idea on how to write code efficiently with them. for openblas and mkl i've been trying recently to call into the lapack api (benches doing that
4.
▲
by
sarah-ek
2y ago
looks interesting! thanks for sharing
5.
▲
by
sarah-ek
2y ago
as far as i know, very little is shared. ndarray-linalg is mostly a lapack wrapper. nalgebra and faer both implement the algorithms from scratch, with nalgebra focusing more on smaller matrices
6.
▲
by
sarah-ek
2y ago
one issue that may be affecting the result is that openmp's threadpool doesn't play well with rayon's. i've seen some perf degradation in the past (on both sides) when both are used in the same program i plan to address
7.
▲
by
sarah-ek
2y ago
funny you mention that, the full pivoting. it's one of the few benchmarks where faer wins by a huge margin n faer mkl openblas 1024 27.06 ms 186.33 ms 793.26 ms 1536 73.57 ms 6
8.
▲
by
sarah-ek
2y ago
lapack does expose a full pivoting lu as far as i can tell? https://netlib.org/lapack/explore-html/d8/d4d/group__getc2_g...
9.
▲
by
sarah-ek
2y ago
the long compile times are mostly because im instantiating every dense decomposition in the library in one translation unit, for several data types (f32, f64, f128, c32, c64, c128)
10.
▲
by
sarah-ek
2y ago
not yet. a tensor api is on the long term todo list, but it's a big undertaking and i'd like to focus on matrix operations for the time being
11.
▲
by
sarah-ek
2y ago
i've contributed to eigen in the past and know enough about the internals of the codebase to know my way around safe `auto` usage
12.
▲
by
sarah-ek
2y ago
im in the process of refactoring the benchmark code at the moment, and plan to include mkl in the benches soon. overall, the results show that faer is usually faster, or even with openblas, and slower than mkl on my desktop
13.
▲
by
sarah-ek
2y ago
i did check, yes
14.
▲
by
sarah-ek
2y ago
author here, eigen is compiled with -fopenmp, which enables parallelism by default
15.
▲
Faer 0.11, a general purpose linear algebra library written in Rust
(github.com)
2 points
by
sarah-ek
3y ago
|
1 comments
16.
▲
by
sarah-ek
3y ago
`faer` is a collection of crates that implement linear algebra routines in pure Rust. the aim is to eventually provide a fully featured library for linear algebra with focus on portability, correctness, and performance. see the official web