SIMD Integration
- Dominant language
- Rust
- Stars
- 4.8k
- Forks
- 565
- PR merge metrics
- No merged PRs in 30d
Description
This is a revival of #27 and #217 and a follow-up to [that comment](https://github.com/rustsim/nalgebra/issues/498#issuecomment-445566134). We need to figure out what we can do to use explicit SIMD in order to improve the overall performances of nalgebra.
Once rusty-machine is integrated to nalgebra (#498), we could use it for benchmarking to see if your optimizations have any impact on some real-world machine-learning operations.
We should also keep in mind the [ffsvm crate](https://github.com/ralfbiedert/ffsvm-rust) as an example of application requiring peak performances for some linalg operations, and the [simd_aligned crate](https://github.com/ralfbiedert/simd_aligned_rust) for an example of an interesting design of a SIMD-friendly data structure for the data storage of a matrix or vector.
Here are some tasks we should start with to get some measurements that will serve at references for our optimizations. This will be useful to guide us through our work:
- [ ] Setup a benchmark for various machine-learning operations from rusty-machine.
- [ ] Setup a list of what operations are the bottleneck on our benchmarks.
- [ ] List the set of linalg operations from ffsvm that requires peak performances.
- [ ] Decide what crate crate we want to use for SIMD manipulation: `faster, SIMDeez, std::simd, packed_simd`?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.