Asayomu Tech
注目★★★★Lobsters

x86エミュレーションの重荷、ARMのTSO対応で性能差

30秒で把握

  • 1FEXがARM上のx86-TSOエミュレーション性能問題を分析
  • 2ARMv8.3のFEAT_LRCPCで通常ロードに近い性能を実現
  • 3Apple M1はTSOモードで非アラインドアクセス低下を約5%に抑制

要約

FEXは、ARM上でx86-TSOメモリモデルをエミュレーションする際の性能問題を分析した。ARMv8.0ではx86のload/storeをload-acquire/store-releaseへ変換するため、CPUによって性能が大きく低下する。ARMv8.3必須のFEAT_LRCPCはx86エミュレーション向けのRCpcロードを追加し、多くの環境で通常のロードに近い性能を実現する。Apple SiliconはハードウェアにTSOモードを実装し、Apple M1ではアラインメント違反アクセスの性能低下を約5%のストア低下に抑えた。FEXは対応CPUでLRCPCやTSOモードを検出して切り替える。

あなたへの影響

ARM向けにx86アプリを運用する日本の開発チームは、CPUごとのFEAT_LRCPCやTSO対応を確認し、代表的な非アラインドアクセスを含むベンチマークを次スプリントで実施すべき。

推奨:x86-TSOはメモリアクセスの順序と可視性を定めるx86固有の強いメモリモデルで、ARMの弱い順序付けとは実装条件が異なる。

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

関連する記事

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