- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
The title is extremely misleading. They’re comparing a Rust program using SIMD intrinsics to a Rust program which doesn’t, without even using auto vectorization to let the driver look for SIMD opportunities.
This is a good example of why SIMD is useful and how fast it can be, but it is not an example of how Rust is faster than C or how humans are smarter than compilers. It doesn’t even have a C reference source to compare to at all.
The link to the original post had the original code referenced, it seems, and extremely misleading is a bit strong to me…
I’m still boggled by just using idiomatic rust iterators giving multiple times performance. Then it quickly gets too golfy for real life, imo
The original post made a valid point. This one makes a point as well, but representing it as “128x faster than C” is plain clickbait.
It’s not comparing the same type of program. If it used intrinsics in C (they exist, it’s where most other languages leverage their intrinsic support from), or even turned on GCC or LLVM auto vectorization to compare performance, I’d be willing to let it go, but right now it’s just misrepresenting reality in that title.
We don’t need this kind of hyperbole or clickbait. We’re better than that as a community. I don’t mean this as “article bad! author bad!”, this article is useful, but it would be much better of titled something like “Speeding up string search 128x by using SIMD intrinsics in Rust”, which gets the point across and the 128x number would still attract enough attention, but for the right reasons.
I updated the title of this post, as per your suggestion
This post seems to have taken the title from a previous post that this is built upon. So that is probably why the title gets a bit confusing when viewed standalone.
The reddit thread has some interesting discussion, and a solution using no SIMD intrinsincs that is more than 200x faster, by using
.chunks_exact()
, and letting the compiler auto-vectorize it.