[論文レビュー] Improving Branch Prediction By Modeling Global History with Convolutional Neural Networks
この論文では、現代のCPUにおける予測が難しい分岐(H2P)の分岐予測精度を向上させるために、畳み込みニューラルネットワーク(CNN)を補助予測子として使用することを提案する。CNNを用いてグローバル履歴をモデル化することで、分岐履歴シーケンスの位置的ばらつきに耐性を示し、SPECint 2017におけるH2Pの47%のうち平均で36.6%の誤予測を削減する。実装可能な2ビット量子化CNN設計により、24%のH2Pが平均14.4%向上する。
CPU branch prediction has hit a wall--existing techniques achieve near-perfect accuracy on 99% of static branches, and yet the mispredictions that remain hide major performance gains. In a companion report, we show that a primary source of mispredictions is a handful of systematically hard-to-predict branches (H2Ps), e.g. just 10 static instructions per SimPoint phase in SPECint 2017. The lost opportunity posed by these mispredictions is significant to the CPU: 14.0% in instructions-per-cycle (IPC) on Intel SkyLake and 37.4% IPC when the pipeline is scaled four-fold, on par with gains from process technology. However, up to 80% of this upside is unreachable by the best known branch predictors, even when afforded exponentially more resources. New approaches are needed, and machine learning (ML) provides a palette of powerful predictors. A growing body of work has shown that ML models are deployable within the microarchitecture to optimize hardware at runtime, and are one way to customize CPUs post-silicon by training to customer applications. We develop this scenario for branch prediction using convolutional neural networks (CNNs) to boost accuracy for H2Ps. Step-by-step, we (1) map CNNs to the global history data used by existing branch predictors; (2) show how CNNs improve H2P prediction in SPEC 2017; (3) adapt 2-bit CNN inference to the constraints of current branch prediction units; and (4) establish that CNN helper predictors are reusable across application executions on different inputs, enabling us to amortize offline training and deploy ML pattern matching to improve IPC.
研究の動機と目的
- Intel SkyLake以降のプロセッサで14.0%のIPC損失を引き起こす少数の予測が難しい分岐(H2P)に起因する性能ボトルネックを解消する。
- 反復回数が変動する場合に特に顕著な、従来の分岐予測子がグローバル履歴データの複雑なパターンを捉えきれないという限界を克服する。
- 分岐予測ユニット(BPU)の厳しい面積および遅延制約を満たすことができる機械学習ベースのソリューションを開発する。
- トレーニングコストを相殺し、プロダクション環境での後シリコンカスタマイズを可能にするために、異なる入力や実行環境間でトレーニング済みのMLモデルを再利用可能にする。
- 変動する反復制御構造が引き起こす位置的ずれに耐性を持つグローバル履歴のモデル化が、CNNによって可能となり、従来のパターンマッチング手法を上回ることを示す。
提案手法
- 命令ポインタ値と分岐方向から成るグローバル履歴データを、畳み込み処理に適した2次元テンソル表現にマッピングする。
- 1層目に32フィルタ、2層目に16フィルタを有する2層構造のCNNを設計し、7ビットのIP符号化と1ビットの方向ビットを用いて、分岐履歴における時間的および空間的パターンをモデル化する。
- 複雑さを低減し、テーブルルックアップとポップカウント演算のみで効率的な推論を可能にするために、CNNを2ビット重み(3値CNN)に量子化する。
- CNNの推論プロセスを、連続的なテーブルルックアップと1回のポップカウント演算に翻訳し、遅延を最小限に抑え、BPUのリソース制約に適合させる。
- 複数のベンチマーク入力からの実行トレースをオフラインでトレーニングし、k分割交差検証を用いて未観測ワークロードへの一般化性能を評価する。
- CNN補助予測子をベースラインのTAGE-SC-L予測子に補完する二次予測子として統合し、最終的な予測は統計的補正機構により行う。
実験結果
リサーチクエスチョン
- RQ1畳み込みニューラルネットワークは、従来の予測子が対応できない予測が難しい分岐(H2P)のグローバル分岐履歴データを効果的にモデル化し、予測精度を向上させることができるか?
- RQ2変動する反復制御構造が引き起こす分岐履歴シーケンスの位置的ばらつきに対して、CNNは従来のパターンマッチング予測子と比較してどの程度耐性を示すか?
- RQ3実際の分岐予測ユニットの厳しい面積および遅延制約を満たしつつ、顕著な精度向上を維持できる2ビット量子化CNNを設計できるか?
- RQ4同じアプリケーションの異なる入力に対して、トレーニング済みのCNN補助予測子が一般化するか。これにより、トレーニングコストの相殺と生産環境での再利用が可能になるか?
- RQ5CNN補助予測子の導入による性能への影響は何か。IPC向上の度合いと、既存の予測子をスケーリングした場合に残る誤予測の機会をどの程度カバーできるか?
主な発見
- フル精度のCNN補助予測子は、SPECint 2017におけるH2Pの47%で平均36.6%の誤予測削減を達成し、体系的に予測が難しい分岐に対して顕著な精度向上を示した。
- 2ビット量子化CNN(TP-CNN)は、24%のH2Pに対して平均14.4%の精度向上を達成し、フル精度モデルの約半分の利得を得つつも実装可能であることを示した。
- TAGE-SC-Lを64KBにスケーリングしても、21%のH2PがCNN補助予測子の恩恵を受ける。平均で12.3%の誤予測削減が達成され、スケーリングのみではなく、より優れたパターンマッチングが根本的な優位性を提供することを示した。
- CNNアプローチは、同じアプリケーションの異なる入力間で一般化可能である。あるワークロードでトレーニングし、他のワークロードでテストした場合でも一貫した向上が得られ、再利用性とトレーニングコストの相殺が可能である。
- フル精度と量子化CNNの間の差異は、位置的パターンマッチングと、おそらく古くなったデータの処理が精度に重要な要因であることを示唆しており、BPU上での設計においてさらなる最適化の余地があることを示している。
- わずか少数の分岐に焦点を当てたことで、Intel SkyLakeでは最大14.0%、4倍スケールされたパイプラインでは最大37.4%のIPC向上を達成した。これは、マイクロアーキテクチャ設計におけるML駆動のカスタマイズの潜在的価値を強く示している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。