最も遅いCPU命令を競うOSSプロジェクト
原題: Assembly Hall of Shame
なぜ重要か
CPU命令の最悪ケースレイテンシの体系的な計測は、リアルタイムシステムやセキュリティ研究(サイドチャネル攻撃分析)において重要な基礎データとなる。
GitHubユーザーxoreaxeaxeaxが「Assembly Hall of Shame」を公開した。x86アーキテクチャにおける単一命令の性能を最適化ではなく最悪化する方向で競うプロジェクトで、現チャンピオンはPCIeファブリック経由のMMIO領域からFPU/MMX/XMM状態を512バイト読み込む「fxrstor64」命令とされている。
「Assembly Hall of Shame」は、通常は高速化を目的とする命令レイテンシ分析を逆転させ、単一命令で達成できる最低性能(最大レイテンシ)を追求するオープンソースプロジェクトだ。
現時点でのx86チャンピオン命令は「fxrstor64」。この命令はFPU・MMX・XMMレジスタを含む512バイトのプロセッサ状態をメモリから復元するもので、ただロードするだけではなく、PCIeファブリック上の高レイテンシMMIO領域からデータを読み込む設定を用いている。
さらに性能を低下させるために「ハンマーコア」戦略が組み合わされている。複数のコアが別の高レイテンシMMIOレジスタに対して4バイト単位の読み込みを連続して叩き続けることで、PCIeルートコンプレックスとエンドポイントをnon-posted(応答待ち)トランザクションで飽和させる。その結果、CPU 0が発行した512バイトのfxrstor64はキューの最後尾に追いやられ、極めて高いレイテンシを記録する。
リポジトリにはfxrstor64のほか、clflush・cpuid・fdiv・fsin・idiv・mfence・rdrand・rdtsc・wbinvd・wrmsrなど多数の命令に対応するベンチマークフォルダが含まれており、それぞれの「最低性能」を検証できる構造になっている。ライセンスはMIT。スターは公開直後から集まり、CPUマイクロアーキテクチャやハードウェアセキュリティに関心を持つエンジニアから注目を集めている。