ニュース

Intel CPUの新技術は「ベンチの正確性に影響」Geekbenchが指摘

Intel Binary Optimization Toolに関する紹介スライド

 Geekbenchは3月31日、同社が提供する「Geekbench 6」におけるIntel Binary Optimization Tool(BOT)に関する分析結果を公開した。これによると、スカラ命令をベクタ命令に変換するなど高度な処理が行なわれている一方で、ベンチマーク結果の正確性に影響を与える可能性があると指摘している。

 BOTは、Core Ultra 200S Plusシリーズなどで新たに導入された技術。古いCPUや他社製など、ほかのx86向けに最適化されたソフトウェアを実行する際に、バイナリ変換レイヤーを活用することで、性能アップを図る。

 Geekbenchでは、Core Ultra 9 386Hを搭載するノートPC(MSI Prestige 16 AI+)を用意。Geekbench 6.3と、今後リリース予定のGeekbench 6.7を使用して、BOTに関する独自の調査を実施した。

 起動時のオーバーヘッドについては、BOT無効時は両バージョンで起動遅延は発生しなかった。一方、BOT有効時は、Geekbench 6.3では初回実行時は40秒、2回目以降は2秒、Geekbench 6.7ではすべての実行時に2秒の起動遅延が発生した。BOTを有効にすると必ず起動遅延が発生するという結果となった。

 Geekbenchのスコアでみると、Geekbench 6.3では、BOT無効時に比べて有効時の方が5.5%スコアが向上した。一部のワークロードスコアは最大30%のスコアアップもみられた。一方Geekbench 6.7では、BOTの有効/無効にかかわらずほぼ同じスコアとなった。

【表1】Geekbench 6.3のスコア
BOT無効時BOT有効時スコア差
シングルコア2,9553,119+5.5%
マルチコア16,78617,705+5.5%
【表2】Geekbench 6.7のスコア
BOT無効時BOT有効時スコア差
シングルコア2,9382,937+0.0%
マルチコア16,89217,045+0.9%

 Geekbenchの分析によると、BOTは実行ファイルのチェックサムを計算し、既知のバイナリかどうかを識別して最適化を行なっているという。そのため、特定のバージョンのみ最適化される結果になったとしている。

 また、プログラム実行中にどの命令が実行されているか監視できるIntel Software Development Emulator(SDE)を使用し、Geekbench実行中にどの命令が何回実行されているか調査した。ここでは、BOTで最も性能アップが大きかったHDRワークロードを利用し、100回の反復実行を行なっている。

 その結果Geekbenchの場合では、BOT無効時に対して有効時は、総命令数が14%減、スカラ命令数が62%減となった一方、ベクタ命令数が1,366%増と大幅に増加しており、スカラ命令がベクタ命令に大量に変換されていることが分かった。単純に命令の順序を変えるのではなく、コードの一部をベクタ化するといった高度な変換が行なわれていると説明している。

【表3】BOT無効時と有効時の命令数の差
BOT無効時BOT有効時
総命令数1兆2,600億回1兆800億回-14%
スカラ命令数2,200億回846億回-62%
ベクタ命令数12億5,000万回183億回+1,366%

 Geekbenchでは、BOTが興味深い最適化手法だとした上で、対応アプリケーションがごくわずかであることなどから、最適化されたベンチマーク結果は実際のCPU性能を正しく反映しておらず、ほかのCPUと正確な比較ができないと指摘。近日リリース予定のGeekbench 6.7では、BOTが有効な場合にフラグを付与する機能を搭載するほか、Windows版のGeekbench 6.6以前の結果にもフラグを付与し、計測結果にBOTが影響している可能性を判別できる仕様にするとしている。