matrixmultiply
nalgebra
Our great sponsors
matrixmultiply | nalgebra | |
---|---|---|
4 | 20 | |
202 | 3,732 | |
- | 2.6% | |
6.0 | 7.8 | |
about 2 months ago | 3 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
matrixmultiply
-
Help understanding the state of ndarrays and linalg in Rust.
The matrixmultiply crate from the ndarray author (https://github.com/bluss/matrixmultiply) is one such implementation. It uses the same algorithm as the BLIS project (https://www.cs.utexas.edu/users/flame/pubs/TOMS-BLIS-Analytical.pdf) to partition the problem and exploit the cache hierarchy. It isn't as well tuned as eg. Intel MKL or BLIS, but the results are very respectable.
-
faer 0.8.0 release
Do you plan to support integers as native types? I know there is an issue for the crate matrixmultiply for that, it seems it can be problematic because of overflow.
-
Faster `matrixmultiply` ?
There's a famous crate [matrixmultiply](https://github.com/bluss/matrixmultiply) for matrix-matrix multiplication in Rust. But it's a bit slow for me.
-
Nim vs Rust Benchmarks
In my benchmarks, Nim is faster than Rust:
- multithreading runtime (i.e Rayon vs Weave https://github.com/mratsim/weave)
- Cryptography: https://hackmd.io/@gnark/eccbench#Pairing
- Scientific computing / matrix multiplication: https://github.com/bluss/matrixmultiply/issues/34#issuecomme...
There is no inherent reason why a Nim program would be slower than Rust.
nalgebra
-
Xkcd 2916: Machine
Ok, so this uses https://rapier.rs/ which is very cool
Rapier, alongside https://nalgebra.org/ (which it uses underneath) has seriously good documentation and some advanced features like cross-platform determinism (something made hard by the way floating point differs between platforms)
-
Geometric Algebra to Geometric Computing Software Developers
> Some GA libraries[1][2] define types for the different kind of objects (grades)
That's nice!
This reminds of me things like, linear algebra libraries that will type-check matrices so that a 2x2 matrix can't be added to a 2x3 matrix (but then you can have a dynamic matrix that will error only in runtime), like https://nalgebra.org/ and others.
-
Has anyone worked on a math library before?
Maybe start by looking at https://nalgebra.org/ to see what rust math libraries might look like
-
faer 0.8.0 release
And Nalgebra, while better, also seems to have slowed down on commits and responses to issues and PRs. I have a PR there for a relatively simple wrapper type for row vectors which was explicitly requested by a maintainer, which hasn't even gotten a comment since for two weeks.
-
A Rust client library for interacting with Microsoft Airsim https://github.com/Sollimann/airsim-client
nalgebra (similar to Eigen in cpp)
-
What crates are considered as de-facto standard?
nalgebra
-
Science-related crates that I should have a look at?
nalgebra is for linear algebra.
-
Hey Rustaceans! Got a question? Ask here! (31/2022)!
Take a look into math libraries, like glam, nalgebra, and cgmath. I've only used these through game engines, though, so I can't offer per-basis reviews/advice.
-
C++ is making me depressed / CUDA question
If you do not need GPU then I would recommend looking into Eigen in C++, nalgebra in Rust (with a BLAS in both cases for improved performance) or one of the above options (Julia / Python+JAX).
- Lightning talk: Stop writing Rust
What are some alternatives?
weave - A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead
cgmath-rs - A linear algebra and mathematics library for computer graphics.
rust-ndarray - ndarray: an N-dimensional array with array views, multidimensional slicing, and efficient operations
Programming-Language-Benchmarks - Yet another implementation of computer language benchmarks game
glam-rs - A simple and fast linear algebra library for games and graphics
Programming-Language-Benchmark
rust-blas - BLAS bindings for Rust
Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
rulinalg - A linear algebra library written in Rust
faer-rs - Linear algebra foundation for the Rust programming language
scirust - Scientific Computing Library in Rust