| Platform-independent SIMD in Go(go.dev) | |
| 402 points by yurivish 18 days ago | 146 comments | |
tl;dr: Go 1.27 introduces an experimental `simd` package that provides a portable, platform- and vector-size-agnostic SIMD API, complementing the architecture-specific `archsimd` packages added in 1.26/1.27. It exposes the intersection of operations across AVX/AVX2/AVX512, NEON, and wasm SIMD, filling gaps with efficient emulation, and allows escape hatches to architecture-specific code via `ToArch()`/`FromArch()`. Future releases plan to add SVE support, reduction and shuffle operations, and finer-grained feature variants for hardware like Raspberry Pi that lacks specific instructions. | |
HN Discussion:
| |