Go 1.27 приносит платформонезависимый SIMD

Platform-Independent SIMD in Go

Go 1.27 приносит платформонезависимый SIMD

Go 1.26 и 1.27 добавляют экспериментальные API для SIMD. Пакет archsimd даёт доступ к AVX, AVX2, AVX512 на amd64, NEON на arm64 и wasm, но привязывает код к конкретной архитектуре. Новый пакет simd предлагает переносимый интерфейс, скрывающий различия в размерах векторов и масках, с эффективной эмуляцией на платформах без SIMD. Включается через GOEXPERIMENT=simd.

Цель — поддержка write-once кода «simd» с производительностью, близкой к ассемблеру, на платформах с поддержкой SIMD и обеспечение компетентной эмуляции на тех, где такой поддержки (пока) нет.

Ещё за этот день

2026-09-25