Snapdragon X2 Eliteのバイナリ翻訳性能はNeoverse N1を凌駕する

On Binary Translation and Its Consequences

Snapdragon X2 Eliteのバイナリ翻訳性能はNeoverse N1を凌駕する

MicrosoftのPrismはx86-64バイナリをaarch64で実行するが、命令数は約2倍に膨らみ性能ペナルティは大きい。Geekbench 7でSnapdragon X2 Elite Extreme、Neoverse N1/N2を比較すると、QualcommのE-Coreは翻訳時でもNeoverse N1を上回り、P-CoreはNeoverse N2を圧倒。広いアウトオブオーダーエンジンと大容量L2が翻訳オーバーヘッドを吸収する。

QualcommのE-CoreはNeoverse N1をバイナリ翻訳のペナルティを受けてもなお上回る。
  1. cwzwarich

    【免責事項:私はRosetta 2を書いたので、私が言うことはすべてそれによってバイアスがかかっています。】

    現代のアウトオブオーダーCPUは信じられないほど過剰にリソースを割り当てられています。マイクロアーキテクトは、あるベンチマークで0.1%の性能向上があるという理由で新機能を正当化します。その結果、バイナリトランスレータから生じるようなコードの肥大化を扱うのにかなり適したCPUができあがります。

    バイナリトランスレータにさらなる最適化を加えることには、大きなトレードオフもあります。例外(特に無効なメモリアクセスによるもの)を正確に処理しつつ、ユーザー空間の例外ハンドラに対してソースプログラムのアーキテクチャ的に有効な状態を提示できるようにしたいものです。原則的には簡単にできる最適化でも、ソースプログラムの状態と翻訳されたプログラムの状態の間のこのマッピングを維持するのが苦痛なものがあります。複雑さの負担と、その追加された複雑さをデバッグする(あるいは事前に徹底的に検証する)困難さが、プロダクションのバイナリトランスレータを書く際の多くの決定を形作ります。常に、実際に使うよりも多くのCool(tm)なアイデアを持っているべきです。

  2. torginus

    M1 Macbookを買ったとき、バイナリトランスレーションがどれほど機能するかを身をもって体験しました。ほぼ完璧でしたが、一つ大きな例外がありました。それはJITを使うものすべて、つまりElectronアプリやJava関連(IntelliJベースのIDEなど)です。これはちょっと皮肉でした。JITはCPUアーキテクチャ間の移植性を念頭に設計されたものなのに、通常は移植が最も難しいコードの一つであり、しかもコンパイル時間が比較的長いが実行時間は良いというこの種のバイナリトランスレーションアプローチを非常に遅くて苦痛なものにするのです。

  3. functionmouse

    > PCセグメントの消費者は、幅広いアプリケーションにわたって高いパフォーマンスを期待している

    ハードウェア設計者がユーザーが求めていると思っていることと、ユーザーが実際に求めていることの間には根深い断絶があるようで、最近になってようやく主要OEMがMacBook Neoのような製品で対応し始めました。

    私が個人的に知っている人で、より速いCPUを欲しがっている人はいません。彼らが求めているのは、有能で、より速く、ネイティブに感じられるソフトウェアと、より電力効率の高いハードウェアです。CPUは少なくともこの10年間、大多数のユーザーやゲーマーが行うことにとっては十分に速いのです。私はRTX 2080とi7-4790k(2013年のCPUで、ベースのM1でも簡単に打ち負かせる)で、新作の悪名高い高負荷なLEGO Batmanゲームをプレイしています。ゲームは問題なく動きます。ほとんどの人はM1以上のものを必要としていないと確信しています。

この日のほかの記事

2026-09-13