GoにプラットフォームSIMD独立APIが登場
मूल शीर्षक: Platform-Independent SIMD in Go
यह क्यों महत्वपूर्ण है
Goで初めてアセンブリ不要のSIMD活用が可能になり、AI・暗号・データ処理分野でのGo採用が広がる可能性がある。
Go言語の公式ブログが2026年9月24日に発表。Go 1.26でamd64向けSIMD APIを導入し、Go 1.27ではarm64(NEON)およびwasm対応を追加。さらにGo 1.27は完全移植可能なプラットフォーム非依存のSIMDパッケージ(実験的)を公開した。
Go言語チームのDavid ChaseとJunyang Shaoが、Go 1.26および1.27に含まれる実験的SIMD(Single Instruction Multiple Data)APIについて詳細を公開した。
SIMDは現代のCPUに搭載される機能で、例えば8組のfloat64値を1命令で加算するなど、大量データに対して同一演算を高速処理できる。暗号処理、データ解析、AI推論など幅広い用途で性能向上が見込まれる。Goの新しいガベージコレクタ「Green Tea」もSIMDを使いメモリスキャンを高速化していると明かされた。
従来、GoからSIMDを利用するにはGoアセンブリを直接記述する必要があり、実用的なのは極めて限られた高性能コードのみだった。Go 1.26でamd64向けアーキテクチャ依存の`archsimd`パッケージが導入され、Go 1.27ではarm64とwasmのAPIが追加された。
さらにGo 1.27では、C++向けライブラリ「Highway」を参考にした完全移植可能な`simd`パッケージが実験的に追加された。このパッケージはプラットフォームおよびベクタサイズに依存しない設計で、SIMD非対応のプラットフォームではエミュレーションで動作する。現時点でamd64上のAVX/AVX2/AVX512、arm64のNEON、wasmのSIMD命令に対応している。
SIMDアーキテクチャ間の差異は設計上の大きな課題だった。wasm・PowerPC・s390xは128ビット固定、amd64は128/256/512ビット、RISC-Vは128〜65536ビットの可変長など、プラットフォームごとにベクタ表現が大きく異なる。この多様性に対応するため、アーキテクチャ依存APIと移植可能APIの二層構造が採用された。