Asayomu Tech
注目★★★★★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とフォールバック実装の確認が必要になる可能性がある。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。