Intelは、SIMDベースの高速ソートを実現するオープンソースのC++ヘッダーファイルライブラリを公開した。これは当初、超高速のAVX-512クイックソート実装を提供することに重点を置いていた。今日現在、このコードはNumpyにマージされ、10倍から17倍のスピードアップを実現している。
昨年末、IntelはGitHubアカウントからx86-simd-sortをひっそりと公開した。これは高性能なSIMDソートのためのC++ヘッダーファイルライブラリだが、現在のところAVX-512クイックソートの実装にのみ焦点が当てられている。
このx86-simd-sortプロジェクトは取り上げられることが少ないが、現在、広く使われているNumpyのオープンソースプロジェクトを通じて、驚異的な結果を達成している。
新たにNumpyにマージされたPR 22315は、AVX-512を使用して16ビットおよび64ビットデータ型のクイックソートをベクトル化するためのものだ。Intel Tigerlakeシステムでは、16ビットint型のソートが17倍、64ビットfloat型のソートがランダム配列で10倍近く、32ビットデータ型が12~13倍高速化された。このNumpyの変更はIntelのエンジニアRaghuveer Devulapalliによって行われ、x86-simd-sortのコードを利用している。
AVX-512によるソートで10~17倍のスピードアップは、特に最近の世代のIntel CPUでより良いAVX-512効率を考慮すると、かなり驚異的なことだ。最新のXeon Scalableプロセッサでは、AVX-512は、大幅なCPUダウンクロックを引き起こすこともなく、むしろ良い状態になっている。一方、AMD側では、Ryzen 7000シリーズから第4世代EPYCサーバー・プロセッサーまでのZen 4プロセッサーで、ようやくAVX-512がサポートされるようになった。
Source
コメントを残す