Developer reports measurable SIMD performance gains in speech model project
2 Sep 25 1:11 PM · 2d ago · 1 post · 5 comments · 2 sources · development 2 of 2
A developer shares experience testing experimental SIMD on speech-to-text and text-to-speech models running natively in Go, reporting measurable performance improvements from SIMD versus plain Go.
“I don't have formal benchmarks for that, but I can anecdotally say the SIMD work made a measurable improvement in the performance of the calculations vs. just plain Go.”
sixdimensionalGo team Language maintainers
The whole story articlespostscomments the bright band is this development · numbered dots are the others · click one to jump
What people said 7 voices · verbatim
-
Very neat, and comes pretty close to how Mojo handles portable SIMD.It's great to see two of my favorite languages finally making SIMD easy to use. It's such low-hanging fruit for performance, yet somehow languages have ignored it for years. Portable SIMD, even with some performance penalty, still beats scalar computation whenever vector…
-
I did some testing with the experimental SIMD on a project I was doing to make speech-to-text and text-to-speech models run natively in Go (with CGO_ENABLED=0, so no C depenencies), and testing non-SIMD w/ SIMD.I don't have formal benchmarks for that, but I can anecdotally say the SIMD work made a measurable improvement in the performance of the…
-
> The new simd package hides these differences by removing fixed-size vectors from the type system, and by only supporting those operations that are in the intersection of all the different platforms, and fills gaps in the intersection with efficient emulation in terms of other SIMD instructions.The intersection would be the operations supported…
-
Now with Mojo and WebAssembly I notice 3 different approaches for platform-independent SIMD. For examples operating on an array of floats:- WebAssembly: 4 float32s- Mojo: N float32s where N is a compile-time parameter- Go simd: vector of float32s
-
Just want to say among many portable SIMD solutions I’ve seen recently (e.g. Fearless SIMD), this is the first that makes non-fixed vectors like SVE and RISC-V vector (RVV) easier to support. Glad to see they made this decision
-
I am using Go assembly for SIMD very heavily in https://github.com/rcarmo/go-pherence, this is just icing on the cake.
-
Curious how much of the emulation ends up in hot paths before SVE and the feature variants land.
All 2 developments of Go 1.27 adds platform-independent SIMD API →
LobstersHacker NewsNewswiresMastodon