Discoverability of ergonomic simd

Hello

I’ve wanted to check once again what the status of some kind of ergonomic simd in Rust is. While I eventually did find the packed_simd, it took a more thorny journey then what I’d have preferred. I’d open some issues somewhere, but I’m not sure what the right repository is, so I’m writing it here (I hope most/all the relevant repositories would be under rust-lang or rust-lang-nursery).

What I did:

  • I remembered the faster. Last release 10 months ago ‒ so, not the most recent thing around something that is still being developed.
  • Shouldn’t there be something in std already? Like, something more than std::arch? Searching in the std docs for simd produces nothing.
  • The first page of crates.io when searching for simd also produces nothing relevant.
  • Hmm, wasn’t there some crate for simd vectors? Was it called coresimd? Or stdsimd? Turns out both of them exist, but they both say this on crates.io:
stdsimd is now shipped with Rust's std library - its is part of libcore and libstd.

The easiest way to use it is just to import it via use std::arch.

And the last update on them is 7 months ago.

At this point I was a bit depressed, because it seemed like the simd story was given up and abandoned. Only after looking if there was some recent commit in the stdsimd repository I noticed the link to packed_simd.

So, while I’m now happy I found it, what do you think should be done about some kind of discoverability of the crate?

3 Likes

Raphlinus recently wrote a blog post on the status of SIMD. I’m on mobile so I cannot look it up, but it mentioned several other approaches being explored besides packed_simd.

Personally, once it’s obvious that a particular approach has “won” (and only then), I would add it to a curated collection of crates like stdx to increase its visibility.

EDIT - Here’s that blog post : https://raphlinus.github.io/rust/simd/2018/10/19/fearless-simd.html

I think this RFC should be of interest to you:

1 Like

Thank you for your responses. However, I was not asking for more information ‒ I’ve already found what I wanted.

Why I wrote the post is this. If I try to search for the current state, I get a lot of dead ends, abandoned crates, old blog posts. If you add the fact that the two nursery crates that can be found on crates.io quite specifically point to look into std and std doesn’t contain it, the feeling at that point I got was that the whole SIMD project was silently abandoned. I believe this is the wrong impression.

3 Likes

lib.rs ranks packed_simd above faster: https://lib.rs/search?q=simd

3 Likes