GoがSIMDを「どこでも同じ書き方」で扱おうとしている話
Goのブログが、SIMDを扱う実験的なAPIを大きく前に出してきました。SIMDは、CPUが複数の値をまとめて処理するための仕組みで、計算の重い処理をかなり速くできる一方、これまではGoから使うにはアセンブリを書くしかありませんでした。今回の発表で目を引くのは、単に高速化の道具を増やしただけではなく、CPUやOSの違いをできるだけ隠して「同じコードを別の環境で動かす」方向に踏み込んでいる点です。Go 1.26と1.27で何が変わったのかを追うと、Goが低レイヤー性能と移植性をどう両立しようとしているかが見えてきます。 元記事は、GoにおけるSIMDの扱いが大きく変わった、と説明しています。SIMDは Single Instruction Multiple Data の略で、1つの命令で複数のデータをまとめて処理するCPU機能です。たとえば float64 を8組まとめて足すような処理ができ、暗号、データ処理、AIのような計算集約的な処理を速くできます。GoのGreen Teaガベージコレクタも、メモリ上の生存オブジェクトを探す場面でSIMDを使っていると書かれています。 ただ、これまで
papoo.work