注目★★★★★Lobsters
Debian Code Search、Go 1.26 SIMDでcgo依存を排除
30秒で把握
- 1Debian Code SearchがGo SIMDでTurboPForを再実装しcgo依存を削除
- 2Go実装はSIMDとpositional popcountでC版を上回る性能を達成
- 3GOAMD64=v4とAVX512対応CPUでDCSの高速化を適用
要約
Debian Code Searchは、Go 1.26の実験的なsimd/archsimdを使ってTurboPForのエンコーダーとデコーダーをGoへ移植し、最後のcgo依存を削除した。Go実装は当初C実装の76%だったが、SIMD、ビット幅特化、positional popcountでエンコーダーをC版より高速化し、デコーダーもcgo版と同等以上にした。GoとCを同条件で比較すると、AVX512とpositional popcountを含むC版に対してGoは約1.4倍遅い。DCSではGOAMD64=v4を使い、AVX512対応CPU向けにビルドしている。
あなたへの影響
Goで高速な整数圧縮処理を実装するチームは、Go 1.26のsimd/archsimdとGOAMD64の設定を次スプリントで検証するとよい。
推奨:simd/archsimdはAPIが未安定で、GOAMD64=v4はAVX512対応CPUが必要なため、対象CPUとフォールバック実装の確認が必要になる可能性がある。