270 likes | 387 Views
チップマルチプロセッサにおけるデータ・プリフェッチ効果の分析. ○ 福本尚人,三原智伸 九州大学 大学院システム情報科学府 情報理学専攻 井上弘士,村上和彰 九州大学 大学院システム情報科学研究院 情報理学部門. 発表手順. 研究の背景・目的 効果に基づくプリフェッチの分類法 マルチプロセッサ チップマルチプロセッサ 性能モデル式による定性的評価 定量的評価 まとめ. 研究の背景. CMP (Chip MultiProcessor ) の登場 1 つの チップに複数の プロセッサコアを搭載 並列処理により性能向上
E N D
チップマルチプロセッサにおけるデータ・プリフェッチ効果の分析チップマルチプロセッサにおけるデータ・プリフェッチ効果の分析 ○ 福本尚人,三原智伸 九州大学 大学院システム情報科学府 情報理学専攻 井上弘士,村上和彰 九州大学 大学院システム情報科学研究院 情報理学部門
発表手順 • 研究の背景・目的 • 効果に基づくプリフェッチの分類法 • マルチプロセッサ • チップマルチプロセッサ • 性能モデル式による定性的評価 • 定量的評価 • まとめ
研究の背景 • CMP (Chip MultiProcessor)の登場 • 1つのチップに複数のプロセッサコアを搭載 • 並列処理により性能向上 • 例 POWER5, Core2 Duo… • CMPの高性能化阻害要因 • メモリウォール問題の深刻化 • 主記憶へのアクセス頻度の増加 • コアあたりのメモリバンド幅の減少 データ・プリフェッチにより、 平均メモリアクセス時間を削減 コア コア CMP L1 $ L1 $ L2$ チップ
研究の背景・目的 • 研究の背景 • 従来のプリフェッチ手法はシングルコアプロセッサ前提 • CMPでも高い性能向上を発揮できるか分からない • メモリ性能をさらに向上させるためにはCMPの特性を考慮したプリフェッチ手法が必要では? • 研究目的 • CMPにおけるプリフェッチ効果の分析
発表手順 • 研究の背景・目的 • 効果に基づくプリフェッチの分類法 • マルチプロセッサ • チップマルチプロセッサ • 性能モデル式による定性的評価 • 定量的評価 • まとめ
効果に基づくプリフェッチの分類法(1/2) • プリフェッチ処理においてアクセス対象となるデータ(プリフェッチ・データ)に着目 • プリフェッチ・データの状態を定義 • 初期状態:プリフェッチ・データがキャッシュに読込まれた直後の状態 • 状態はメモリ性能へ影響を与えるイベントにより遷移 • 最終状態:プリフェッチ・データがキャッシュから追出されるときの状態
効果に基づくプリフェッチの分類法(2/2) • メモリ性能へ影響を与えるイベント • プリフェッチ・データの参照 • メモリアクセス時間の削減 • プリフェッチ・データによってキャッシュから追出されたデータへの参照 • キャッシュミスの増加 • プリフェッチにより共有状態になったデータへの書込み • プリフェッチ・データの無効化 • 無効化要求の増加 • 状態名 • Useful: 1が発生した状態 • Conflict:2が発生した状態 • Harmful:3が発生した状態 コア1 コア2 L1$ L1$ A A L2$ L2$ 3の例 コア2:prefetch A データが共有状態へ コア1:Store A コア2のデータが無効化 主記憶
シングルプロセッサにおけるプリフェッチ・データの状態遷移シングルプロセッサにおけるプリフェッチ・データの状態遷移 Useless プリフェッチ・データの参照 • Useless:プリフェッチ・データが参照されていない状態 • Useful:プリフェッチ・データが参照された状態 • Conflict:プリフェッチにより追い出されたデータへの参照があった状態 Useful 追い出されたデータの参照 Useless/Conflict プリフェッチ・データの参照 Useful/Conflict
マルチプロセッサにおけるプリフェッチ・データの状態遷移*マルチプロセッサにおけるプリフェッチ・データの状態遷移* • Useless:プリフェッチ・データが参照されていない状態 • Useful:プリフェッチ・データが参照された状態 • Conflict:プリフェッチにより追い出されたデータへの参照があった状態 • Harmful:プリフェッチによる無効化要求が発生した状態 Useless プリフェッチにより 共有状態になったデータへの書きこみ プリフェッチ・データの参照 Useful Harmful 追い出されたデータの参照 Useless/Conflict 追い出されたデータの参照 プリフェッチ・データの参照 Harmful/Conflict Useful/Conflict プリフェッチにより 共有状態になったデータへの書きこみ * Jerger, N., Hill, E., and Lipasti, M., ``Friendly Fire: Understanding the Effects of Multiprocessor Prefetching‘’ In Proceedings of the IEEE InternationalSymposium on Performance Analysis of Systems and Software (ISPASS), 2006.
マルチプロセッサとCMPの違い マルチプロセッサ • マルチプロセッサ • プロセッサ間の通信の際、オフチップをまたぐ必要あり • プロセッサ間の通信が遅い • CMP • プロセッサコア間の通信の際、オフチップをまたぐ必要なし • プロセッサコア間の通信が高速 • あるコアがプリフェッチしたデータを周りのコアが高速にアクセス可能 コア コア コア コア L1$ L1$ L1 $ L1 $ L2$ L2$ チップ L2$ CMP
CMPにおいて新たに増えるイベント • プリフェッチ・データの他コアからの参照 • 下位メモリ階層よりプリフェッチしたデータを他コアが参照 • そのデータを参照したコアのメモリアクセス時間を削減 • このイベントが発生した後の状態名:Remote コア1 コア2 L1 $ L1 $ L2$ A A コア1:prefetch A コア2:Load A A 主記憶 A
Useless Harmful Useful Useless/Remote Useless/Conflict Useful/Conflict Harmful/Conflict Useless/Conflict /Remote CMPにおけるプリフェッチ・データの状態遷移 他のコアからの参照 プリフェッチ・データの参照 追い出されたデータへの参照 他のコアからの参照 プリフェッチ・データの参照
Useful Useless/Remote Useful/Conflict Useless/Conflict /Remote CMPにおけるプリフェッチ・データの状態遷移 Useless Harmful Useless/Conflict プリフェッチにより キャッシュミス増加 Harmful/Conflict
Useful Useless/Remote Useful/Conflict Useless/Conflict /Remote CMPにおけるプリフェッチ・データの状態遷移 プリフェッチによる無効化要求の増加 プリフェッチ・データが参照される プリフェッチ・データが他のコアに参照される Useless Harmful Useless/Conflict プリフェッチ・データが参照されない Harmful/Conflict
発表手順 • 研究の背景・目的 • 効果に基づくプリフェッチの分類法 • マルチプロセッサ • チップマルチプロセッサ • 性能モデル式による定性的評価 • 定量的評価 • まとめ
性能モデル式(1/2) あるスレッドの実行クロックサイクル :実行クロックサイクル数 :演算実行に要するクロックサイクル数 :メモリアクセスに要するクロックサイクル数 :オーバーラップ実行したクロックサイクル数
性能モデル式(2/2) コア コア L1 $ L1 $ :メモリアクセス回数 :L1(L2)キャッシュアクセス時間 L2$ :L1(L2)キャッシュミス率 :周りのコアのL1キャッシュに対するミス率 :L1-L2間(L2-主記憶間)バスアクセス時間 :主記憶アクセス時間 主記憶
プリフェッチによるメモリアクセス時間の変化プリフェッチによるメモリアクセス時間の変化 Harmfulによる悪影響を小さくし、Remoteを利用することで、CMPにおいてより高い性能向上を得ることが可能
プリフェッチ効果の定量的分析 • 分析項目 • プリフェッチ・データの最終状態の割合 • 平均メモリアクセス時間 • シミュレーション環境 • M5:CMPシミュレータ • L1キャッシュでプリフェッチ • ストライドプリフェッチ、taggedプリフェッチ • MOESIプロトコル • ベンチマークプログラム • SPLASH2:並列計算用の科学技術計算 コア コア コア コア D D D I I I I D L2$ 4MB8way 64KB 2-way 主記憶
周りのコアが得をする場合(Remote) 参照される場合 1 2 FMM LU Radix Water 1.ストライドプリフェッチ 2.taggedプリフェッチ • 周りのコアが得をするプリフェッチは約5%
プリフェッチによるトラフィックの増加 参照される場合 1 2 FMM LU Radix Water 1.ストライドプリフェッチ 2.taggedプリフェッチ • taggedプリフェッチはトラフィックの増加量が大きい • 無効化要求が増加するプリフェッチは極めて少ない
プリフェッチによるバスアクセス時間の変化 バスアクセス時間 1 2 3 FMM LU Radix Water 1.ベース 2.ストライドプリフェッチ 3.taggedプリフェッチ プリフェッチによるバスアクセス時間の増加は小さい
まとめと今後の課題 • まとめ • 発行された各プリフェッチを分類し調査することで、CMPにおけるデータ・プリフェッチ効果を分析した • 従来のプリフェッチ手法は周りのコアからの参照を有効活用していない • プリフェッチによる無効化要求の増加は極めて小さい • プリフェッチによるトラフィックの増加が性能へ与える影響は小さい • 今後の課題 • より詳細なプリフェッチ効果の分析 • プリフェッチ手法、ベンチマークプログラム、キャッシュ構成 • CMP向けプリフェッチ手法の考案
プリフェッチによる無効化要求がほとんど発生しないことについてプリフェッチによる無効化要求がほとんど発生しないことについて • マルチプロセッサでは、プリフェッチによって発生する無効化要求の割合が多い(従来研究) • CMPでは、なぜ少ないのか? 無効化要求の 発生する場合 (約20%) Jerger, N., Hill, E., and Lipasti, M., ``Friendly Fire: Understanding the Effects of Multiprocessor Prefetching‘’ In Proceedings of the IEEE InternationalSymposium on Performance Analysis of Systems and Software (ISPASS), 2006.
CMPにおいてプリフェッチによる無効化要求の発生が少ない理由CMPにおいてプリフェッチによる無効化要求の発生が少ない理由 CMP • CMPでは、マルチプロセッサよりコヒーレンスを維持するキャッシュメモリのサイズが小さい • 共有データがキャッシュメモリから追い出されやすくなり、共有データへの書き込みが少なくなる コア コア コア コア L1 $ L1$ L1 $ L1$ L2$ L2$ サイズ小 マルチプロセッサ L2$ サイズ大
プリフェッチしたデータが無効化される割合(taggedプリフェッチ)プリフェッチしたデータが無効化される割合(taggedプリフェッチ) キャッシュサイズの増加とともにプリフェッチしたデータが無効化される割合が増加する