7 ms·
Curious if people here have looked at the upcoming SIMD support in Go: https://go.dev/doc/go1.26#simd https://go.dev/doc/go1.26#simd Currently experimental, bu
by meling 5mo ago
Curious if people here have looked at the upcoming SIMD support in Go: https://go.dev/doc/go1.26#simd https://go.dev/doc/go1.26#simd
Currently experimental, but looks like the first Intel arch will arrive in the next release in about 3 months. They are also going to support a portable layer.
Wondering what people here think about the approach the Go team is taking; I think they would appreciate more eyeballs on their design. (I’m not competent in this space (yet))…
- camel-cdr 5mo agoLooks like that isn't a portable SIMD abstraction, but more similar to adding architecture-specific SIMD intrinsics support to go, with nicer syntax.
- meling 5mo agoSorry, I didn’t explicitly link to the issue for the portal layer. Here is the issue discussing the portal simd package: https://github.com/golang/go/issues/78902 https://github.com/golang/go/issues/78902
- aphillips801 4mo agoI did a lot of experimentation with the Go1.26 experiment. It's easy to use and produces good code but only supports x86 ATM. (See https://andrewwphillips.github.io/blog/go1p26.html#simd-experiment https://andrewwphillips.github.io/blog/go1p26.html#simd-expe...) I think there will be a "portable" wrapper that will also support other architectures (arm, riscv, even wasm) in the future based on the Highway C++ library.
- aphillips801 4mo agoAlso here is an example of some Go and the Asm code generated: https://godbolt.org/z/n8hKhc7rY https://godbolt.org/z/n8hKhc7rY (click the recompile button if you don't see the Asm code)