TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Faer-rs: Linear algebra foundation for Rust

229 pointsby nateb2022about 1 year ago

13 comments

arijunabout 1 year ago
In a few fields of rust we are starting to see a convergence of lower level libraries that then can be shared amongst the higher level crates. For example, wgpu is seeing broad use across a bunch of libraries from game engines to UI libraries. This then allows the shared libraries to be made more robust, with more shared resources going into them.<p>Does anyone know how much of this is happening in the matrix&#x2F;array space in rust? There are several libraries that have overlapping goals: ndarray, nalgebra, etc. How much do they share in terms of underlying code? Do they share data structures, or is anything like that on the horizon?
评论 #40145704 未加载
评论 #40145638 未加载
heinrichhartmanabout 1 year ago
This does not seem to depend on BLAS&#x2F;LAPACK.<p>Good to see LU decomposition with full pivoting being implemented here (which is missing from BLAS&#x2F;LAPACK). This gives a fast, numerically stable way to compute the rank of a matrix (with a basis of the kernel and image spaces). Details: <a href="https:&#x2F;&#x2F;www.heinrichhartmann.com&#x2F;posts&#x2F;2021-03-08-rank-decomposition&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.heinrichhartmann.com&#x2F;posts&#x2F;2021-03-08-rank-decom...</a>.
评论 #40145235 未加载
评论 #40150171 未加载
评论 #40148745 未加载
bayindirhabout 1 year ago
Why Eigen is not run in parallel mode w&#x2F; Open-MP?<p>Eigen handle most (if not all, I just skimmed the tables) tasks in parallel [0]. Plus, it has hand-tuned SIMD code inside, so it needs &quot;-march=native -mtune=native -O3&quot; to make it &quot;full send&quot;.<p>Some solvers&#x27; speed change more than 3x with &quot;-O3&quot;, to begin with.<p>This is the Eigen benchmark file [1].<p>[0]: <a href="https:&#x2F;&#x2F;eigen.tuxfamily.org&#x2F;dox&#x2F;TopicMultiThreading.html" rel="nofollow">https:&#x2F;&#x2F;eigen.tuxfamily.org&#x2F;dox&#x2F;TopicMultiThreading.html</a><p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;sarah-ek&#x2F;faer-rs&#x2F;blob&#x2F;main&#x2F;faer-bench&#x2F;eigen.cpp">https:&#x2F;&#x2F;github.com&#x2F;sarah-ek&#x2F;faer-rs&#x2F;blob&#x2F;main&#x2F;faer-bench&#x2F;eig...</a>
评论 #40144588 未加载
评论 #40144648 未加载
owlbiteabout 1 year ago
Something looks dubious with the benchmarking here to me.<p>Top-tier numerical linear algebra libraries hold all hit the same number (give or take a few percent) for matrix multiply, because they&#x27;re all achieving the same hardware peak performance.
评论 #40145686 未加载
meiselabout 1 year ago
Looking at thin matrix SVD, it appears <i>much</i> faster than everyone else. I’m curious what it’s doing differently at a high level and if there’s any tradeoff in accuracy. I also wonder how it compares to MKL, which is typically the winner in all these benchmarks on Intel.
评论 #40144643 未加载
andyferrisabout 1 year ago
Does anyone understand the difference (in the benchmark tables) between faer and faer(par)? Which number should be considered important?
评论 #40144297 未加载
评论 #40144345 未加载
评论 #40144333 未加载
loegabout 1 year ago
A bit of a tangent, but the same author has something like a libdivide (C++) for Rust: <a href="https:&#x2F;&#x2F;github.com&#x2F;sarah-ek&#x2F;fastdiv">https:&#x2F;&#x2F;github.com&#x2F;sarah-ek&#x2F;fastdiv</a> . Cool.
snowAbstractionabout 1 year ago
For the larger performance diffs, has anyone looked into why? Are there a couple of common reasons? I&#x27;d really like to know. Thanks
评论 #40156295 未加载
rayrrrabout 1 year ago
How exactly does this dovetail with <a href="https:&#x2F;&#x2F;github.com&#x2F;rust-or&#x2F;good_lp">https:&#x2F;&#x2F;github.com&#x2F;rust-or&#x2F;good_lp</a> ? Will it be a replacement, an enhancement, or something else?
评论 #40143945 未加载
评论 #40144268 未加载
评论 #40144205 未加载
Ericson2314about 1 year ago
Nixpkgs has a some pluggable BLAS&#x2F;Lapack implementation infra. If this does offer a shim layer doing exactly that interace, it would be nice to see this packaged as a new alternative!
netwrtabout 1 year ago
Does this include an einsum function? I find that it makes complex operations easier to work with
评论 #40144775 未加载
citizen_friendabout 1 year ago
Is there a rust API for LAPACK?
评论 #40148762 未加载
jdeatonabout 1 year ago
Why not just call Eigen from rust
评论 #40150976 未加载