[論文レビュー] Data Cache Prefetching with Perceptron Learning
本稿では、表ベースのプリフェッチング(例:ストライドまたはマルコフ)と、ハードウェアで実装可能なパーセプトロン学習を組み合わせた二段階のデータキャッシュプリフェッチスキームを提案する。パーセプトロンは、局所的およびグローバルな時間的および空間的履歴を用いてメモリアクセスパターンを動的に分類し、有害なプリフェッチを拒否することで、メモリリクエストを60.64–83.84%削減する。これによりIPCおよびキャッシュミートレートへの影響は最小限に抑えられる。
Cache prefetcher greatly eliminates compulsory cache misses, by fetching data from slower memory to faster cache before it is actually required by processors. Sophisticated prefetchers predict next use cache line by repeating program's historical spatial and temporal memory access pattern. However, they are error prone and the mis-predictions lead to cache pollution and exert extra pressure on memory subsystem. In this paper, a novel scheme of data cache prefetching with perceptron learning is proposed. The key idea is a two-level prefetching mechanism. A primary decision is made by utilizing previous table-based prefetching mechanism, e.g. stride prefetching or Markov prefetching, and then, a neural network, perceptron is taken to detect and trace program memory access patterns, to help reject those unnecessary prefetching decisions. The perceptron can learn from both local and global history in time and space, and can be easily implemented by hardware. This mechanism boost execution performance by ideally mitigating cache pollution and eliminating redundant memory request issued by prefetcher. Detailed evaluation and analysis were conducted based on SPEC CPU 2006 benchmarks. The simulation results show that generally the proposed scheme yields a geometric mean of 60.64%-83.84% decrease in prefetching memory requests without loss in instruction per cycle(IPC)(floating between -2.22% and 2.55%) and cache hit rate(floating between -1.67% and 2.46%). Though it is possible that perceptron may refuse useful blocks and thus cause minor raise in cache miss rate, lower memory request count can decrease average memory access latency, which compensate for the loss, and in the meantime, enhance overall performance in multi-programmed workloads.
研究の動機と目的
- 高性能プロセッサにおける不正確なプリフェッチによるキャッシュ汚染を解消すること。
- IPC やキャッシュミートレートを低下させることなく、プリフェッチャーからの重複するメモリリクエストを削減すること。
- 局所的およびグローバルな履歴を用いて、パーセプトロン学習を活用し、プログラムのメモリアクセスパターンに動的に適応すること。
- 既存の表ベースプリフェッチャーと統合可能な、ハードウェア効率的でサイクルに依存しないプリフェッチメカニズムを開発すること。
- 単一およびマルチプロ grammableワークロード下で、SPEC CPU 2006ベンチマークを用いて、このスキームの有効性を評価すること。
提案手法
- グローバル履歴バッファ(GHB)を用いて、最初の段階として表ベースプリフェッチャー(ストライドまたはマルコフ)を実行し、初期のプリフェッチ提案を生成する。
- GHBの状態および履歴的なアクセスパターンを、単一ニューロンのパーセプトロンに供給し、最終的な意思決定を行う。
- パーセプトロンは、入力(局所的およびグローバルな時間的・空間的履歴を含む)の重み付き和の符号を計算し、プリフェッチ提案を受容するか拒否するかを決定する。
- 履歴的なメモリアクセスパターンを用いてオンラインで訓練することで、変化するワークロードに動的に適応できる。
- 二段階システムを、SPEC CPU 2006ベンチマークを用いたマイクロアーキテクチャシミュレーションフレームワークに統合する。
- キャッシュミートレートとGHBの更新から得られるフィードバックを用いて、プリフェッチ活動とメモリアクセス行動の間の動的平衡をモデル化する。
実験結果
リサーチクエスチョン
- RQ1パーセプトロンベースの第二段階フィルタは、表ベースプリフェッチャーからの不要なプリフェッチリクエストを効果的に削減できるか?
- RQ2パーセプトロン学習は、キャッシュ汚染を軽減しながら、IPC やキャッシュミートレートを維持または向上させることができるか?
- RQ3局所的およびグローバルな時間的および空間的履歴の統合は、プリフェッチ拒否意思決定の正確性をどのように向上させるか?
- RQ4マルチコア環境におけるプリフェッチトラフィックの削減が、メモリサブシステムへの負荷に与える影響は何か?
- RQ5GHBの更新、プリフェッチャーの提案、キャッシュミートレートの間のフィードバックループは、システムの安定性およびパフォーマンスにどのように影響するか?
主な発見
- 提案された二段階プリフェッチャーは、ストライドプリフェッチャーと比較して60.64%、マルコフプリフェッチャーと比較して83.84%のプリフェッチメモリリクエストを削減した。
- このスキームは、基準値と比較してIPCを±2.55%以内、キャッシュミートレートを±2.46%以内に保つため、パフォーマンスへの影響が最小限に抑えられている。
- キャッシュミートレートにわずかな平均低下(ストライド:0.03%、マルコフ:0.15%)が見られたが、メモリトラフィックの削減により、平均メモリアクセス遅延が低下し、全体的なパフォーマンスが向上した。
- パーセプトロンは高い拒否率を達成し、多数の重複するプリフェッチ提案を拒否することで、キャッシュ汚染と帯域幅の圧力を軽減した。
- GHBの更新、プリフェッチャーの提案、キャッシュミートレートの間で動的平衡が観察され、システムはより効率的な新しい動作点に安定化した。
- パーセプトロンが局所的およびグローバルなメモリアクセスパターンから学習できることで、不規則なアクセスパターンに対しても効果的かつハードウェアに優しい適応が可能になった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。