ImJasonH benchmarks portable SIMD performance
1 Sep 25 11:04 AM · 2d ago · 3 articles · 4 posts · 5 comments · 4 sources · development 1 of 2
A developer releases a wasm-based image palette-swap tool demonstrating portable SIMD versus architecture-specific and non-SIMD implementations, showing portable SIMD is ~11% slower than non-portable but ~5x faster than scalar operations.
“Portable SIMD is ~11% slower than non-portable SIMD in this case, but both are ~5x faster than non-SIMD.”
ImJasonHGo team Language maintainers
The whole story articlespostscomments the bright band is this development · numbered dots are the others · click one to jump
Reported in the same hours no headline names this development itself — these 1 claim were published in its stretch
-
first by Phoronix, 2d ago · also HN Best, HN Frontpage
1 more headline
- Platform-Independent SIMD in Go HN Best · 2d ago
What people said 5 voices · verbatim
-
https://imjasonh.github.io/playground/palette-swap/ swaps colors in a provided image in wasm, entirely locally in your browser, to benchmark portable SIMD vs non-portable archsimd vs non-SIMD.Portable SIMD is ~11% slower than non-portable SIMD in this case, but both are ~5x faster than non-SIMD.
-
This feature opens many doors for optimizing low-level performance in Go projects, that are already running multicore. IIRC there aren’t a lot of languages with built-in std lib support for SIMD and variants. Love the way Go is trying new stuff lately.
-
This will welcome more database/warehouses to be written in Go.Personally I will implement it in
-
C++ is getting std::simd in the latest version and I am all aboard writing the vectorization with the least amount of intrinsic builtins I am able to. Even if not optimal, it's far better than the scalar ops.
-
This is why I love Go. Nobody was asking for this, but they took the time to do it right and continue to Push go as a memory safe, high-level systems language.
All 2 developments of Go 1.27 adds platform-independent SIMD API →
LobstersHacker NewsNewswiresMastodon