https://github.com/axect/peroxide_blas
Peroxide with BLAS example repo
https://github.com/axect/peroxide_blas
Last synced: 9 months ago
JSON representation
Peroxide with BLAS example repo
- Host: GitHub
- URL: https://github.com/axect/peroxide_blas
- Owner: Axect
- Created: 2023-03-08T10:16:56.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-03-08T10:38:34.000Z (almost 3 years ago)
- Last Synced: 2025-03-28T19:46:35.011Z (9 months ago)
- Language: Rust
- Size: 7.81 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Peroxide with BLAS Example Repo
## Rust `blas` ecosystem
Peroxide uses `blas` and `lapack` crate in `O3` feature. But they are just wrapper crates, so we need source crates.
There are several source crates to provide concrete implementations of BLAS and LAPACK.
* [`accelerate-src`](https://github.com/blas-lapack-rs/accelerate-src)
* [`blis-src`](https://github.com/blas-lapack-rs/blis-src)
* [`intel-mkl-src`](https://github.com/termoshtt/rust-intel-mkl)
* [`netlib-src`](https://github.com/blas-lapack-rs/netlib-src)
* [`openblas-src`](https://github.com/blas-lapack-rs/openblas-src)
And they have `system` feature to skip building the bundled BLAS implementation.
## For Arch-linux
For specifically, I'll explain Arch-linux case.
In arch linux, you can install `openblas` or `blis`. (Also `blas` is there, but `blas-src` does not provide `system` feature.)
* Use OpenBLAS
: Add `openblas-src` dependency to `Cargo.toml` as same as this repo's [Cargo.toml](./Cargo.toml)
* Use BLIS
: Add `blis-src` dependency to `Cargo.toml` as same as this repo's [Cargo.toml](./Cargo.toml)
And add `extern crate ` to your `lib.rs` or `main.rs`. The `` is one of above source crates.
In this repo, I used `blis-src`.
## References
* [blas-lapack-rs](https://github.com/blas-lapack-rs/blas-lapack-rs.github.io/wiki)
* [ndarray](https://github.com/rust-ndarray/ndarray#how-to-enable-blas-integration)