• Sources: primary, discussion
  • Summary: The Go blog post of 2026-09-24 by David Chase and Junyang Shao describes an experimental platform-independent simd package in Go 1.27, loosely based on Highway for C++, alongside the architecture-dependent archsimd package that Go 1.26 introduced for amd64 and that 1.27 extends to arm64 NEON and wasm. The portable package removes fixed vector sizes from the type system, supports only the intersection of platform operations, and emulates the gaps, so code compiles and runs where there is no hardware SIMD at all. Both sit behind GOEXPERIMENT=simd, GODEBUG=simd accepts 0 for forced emulation and 128, 256 or 512 to pin vector width for testing with plus variants that panic only when an unsupported instruction is reached, and ToArch and FromArch let code drop to architecture-specific intrinsics for operations the portable set lacks.
  • Why it matters: A vector API that still compiles and runs on targets without SIMD removes the per-architecture build split Go numeric code has needed, though reduction across a vector is absent in 1.27 and ReduceSum arrives in the next release.

send feedback on this story