250 likes | 334 Views
キャッシュ・ミス頻発ロード命令を対象としたミス原因解析. 三輪英樹 † , 堂後靖博 ‡ , 井上弘士 ¶ ,村上和彰 ¶ † 九州大学 大学院システム情報科学府 ‡ 福岡大学 大学院工学研究科 ¶ 九州大学 大学院システム情報科学研究院. 発表手順. 研究背景 メモリ・ウォール問題とは ? キャッシュ・ミス頻発ロード命令 (DL 命令 ) とは ? CS 命令とは ? DL/CS 命令に着目した性能向上手法 どのような場合に妥当であると言えるか ? そのような場合は実際にあるのか ? まとめ. メモリ・ウォール問題とは ?.
E N D
キャッシュ・ミス頻発ロード命令を対象としたミス原因解析キャッシュ・ミス頻発ロード命令を対象としたミス原因解析 三輪英樹†,堂後靖博‡,井上弘士¶,村上和彰¶ †九州大学 大学院システム情報科学府 ‡福岡大学大学院工学研究科 ¶九州大学 大学院システム情報科学研究院 SWoPP 2005 (CPSY2005-22)
発表手順 • 研究背景 • メモリ・ウォール問題とは? • キャッシュ・ミス頻発ロード命令 (DL 命令) とは? • CS 命令とは? • DL/CS命令に着目した性能向上手法 • どのような場合に妥当であると言えるか? • そのような場合は実際にあるのか? • まとめ SWoPP 2005 (CPSY2005-22)
メモリ・ウォール問題とは? • MPUおよびDRAMの動作周波数の違い: • Intel Pentium4: 3.8GHz • DDR2 SDRAM: 533MHz • 計算に必要なデータの参照時間が長い! DRAM が MPU の性能を抑制 「メモリ・ウォール問題」 SWoPP 2005 (CPSY2005-22)
メモリ・ウォールへの対策と問題点 • 代表的なメモリ・ウォール対策技術 • メモリ・アクセス時間の低減・隠蔽 • オンチップ・キャッシュ・メモリの搭載,キャッシュ・プリフェッチ,ロード値予測,再計算,アウト・オブ・オーダ実行など • メモリ・アクセス回数の削減 • コンパイラによるアクセス回数の削減,再計算など • 性能低下を招くオフチップ・メモリ・アクセス(キャッシュ・ミス) を完全には解消できない. SWoPP 2005 (CPSY2005-22)
キャッシュ・ミスによる性能低下を防ぐには?キャッシュ・ミスによる性能低下を防ぐには? • 命令のキャッシュ・ミスはなんとかなる. • データのキャッシュ・ミスの犯人は? • 犯人グループは少人数.(=少数のロード命令) • くり返し犯行に及ぶ.(=何度もキャッシュ・ミス) Delinquent Load 命令 (DL 命令) • DL命令によるキャッシュ・ミスを防ぐことで,性能を大幅に改善できる可能性がある! SWoPP 2005 (CPSY2005-22)
DL命令をやっつける方法 • プリフェッチもしくは再計算 • ロード対象アドレスに対しプリフェッチ • Data-Driven Multithreading [Roth@Wisconsin,2001] • Speculative Pre-Computation [Collins@Intel,2001] • ロード対象値を再計算 • Load Data Re-Computation [三輪,2004] アドレスもしくは値が間違っている場合,性能は向上しない. SWoPP 2005 (CPSY2005-22)
正確にDL命令をやっつけるには? • 犯人グループには黒幕が存在していた! • DL命令がロードするデータを,メモリ・システムに書き込んだ (ストアした) 命令. Corresponding Store 命令 (CS命令)(*) • CS命令に着目することで,DL命令のロード対象データアドレスおよび値が判明! (*) A. L. Holloway and G. S. Sohi, “Characterization of Problem Stores,” IEEE Computer Architecture Letter, Dec. 2004. SWoPP 2005 (CPSY2005-22)
(データアドレス) (データ値) (命令) (ミス) DL命令とCS命令との関係 実行された命令の履歴 オブジェクト コード … STORE1 STORE2 … … LOAD1 LOAD2 LOAD3 DL1 LOAD1 ミス アドレス1 値1 知りたい! DL1 アドレス2 値2 LOAD2 DL2 値3 知りたい! ミス アドレス3 DL2 LOAD3 知りたい! … 値4 DL1 ミス アドレス4 LOAD1 … SWoPP 2005 (CPSY2005-22)
(データアドレス) (データ値) (命令) (ミス) DL命令とCS命令との関係 実行された命令の履歴 オブジェクト コード … … STORE1 CS1 CS1 STORE1 アドレス1 値1 STORE2 CS2 STORE2 CS2 アドレス3 値3 CS1 STORE1 アドレス4 値4 … … ミス DL1 DL1 アドレス1 値1 知りたい! アドレス2 値2 LOAD2 LOAD2 DL2 DL2 アドレス3 値3 知りたい! ミス DL1 ミス 値4 アドレス4 知りたい! … … DL/CS命令に着目しメモリ・システムを高性能化 SWoPP 2005 (CPSY2005-22)
発表手順 (再) • 研究背景 • メモリ・ウォール問題とは? • キャッシュ・ミス頻発ロード命令 (DL 命令) とは? • CS 命令とは? • DL/CS命令に着目した性能向上手法 • どのような場合に妥当であると言えるか? • そのような場合は実際にあるのか? • まとめ SWoPP 2005 (CPSY2005-22)
仮定 • 32bit の RISC 型マイクロプロセッサ上でプログラムを実行する場合を仮定. • プログラム実行スレッド数: 1 • オンチップ・キャッシュ・メモリ階層数: 2 • 主記憶はDRAMを利用. • DL命令 • キャッシュ・ミスを頻発させる上位16ロード命令 SWoPP 2005 (CPSY2005-22)
DL命令およびCS命令に着目したメモリ・システム高性能化手法DL命令およびCS命令に着目したメモリ・システム高性能化手法 オブジェクトコード Load a Load b Add c, a, b Store c (1) ストアした値をロード時に短時間で参照できれば,性能向上可能. CS 命令 Load c Load x Add z, x, c Store z DL 命令 (2) ストア対象アドレスがロード前に判明していれば,プリフェッチすることで性能向上可能.(*) (*) A. L. Holloway and G. S. Sohi, “Characterization of Problem Stores,” IEEE Computer Architecture Letter, Dec. 2004. SWoPP 2005 (CPSY2005-22)
DL命令およびCS命令に着目することで,本当に性能が上がるのか?DL命令およびCS命令に着目することで,本当に性能が上がるのか? • まず,DL/CS命令に着目する妥当性を示す. • 検討項目 • DL命令がプログラム実行時間に及ぼす影響は大きいのか? • CS命令はそもそも存在するのか? • DL命令とCS命令はどのように対応しているか?どのような処理か? • DL命令およびCS命令のアクセスパタンは? SWoPP 2005 (CPSY2005-22)
評価実験環境 • シミュレータ • SimpleScalar 3.0d • 命令セット: PISA (32bit MIPS ISA のサブセット) • ベンチマーク・プログラム • SPEC CPU 2000 から 15 (Int:6, Fp: 9) 種類. • gcc-2.7.2.3 で -O2 コンパイル. • 入力セットは ‘‘Reference’’ を利用. SWoPP 2005 (CPSY2005-22)
主なシミュレータの設定 • 命令発行: アウト・オブ・オーダ • キャッシュ・メモリ容量 • L1データ$: 32KB (64B/エントリ, 2 ウェイ) • L1命令$: 32KB (64B/エントリ, 1 ウェイ) • L2統合: 2MB (64B/エントリ, 4 ウェイ) • アクセスレイテンシ • L1: 1 クロックサイクル • L2: 16 クロックサイクル • 主記憶: 250 クロックサイクル SWoPP 2005 (CPSY2005-22)
検討項目 (1)DL命令を全て退治できたら? SWoPP 2005 (CPSY2005-22)
検討項目 (2) CS命令は存在するのか? SWoPP 2005 (CPSY2005-22)
検討項目 (3)DL命令とCS命令との対応状況 • 検討項目 (1) において,性能向上可能性が高かったベンチマークについて紹介. • 171.swim, 179.art, 188.ammp • 181.mcf SWoPP 2005 (CPSY2005-22)
DL-CS対応状況 (179.art) scanner.c:476 (2重ループ中) Y[tj].j += f1_layer[ti].P * bus[ti][tj] scanner.c:193 bus[j][i] += … 5288271 66% scanner.c:192 temp = bus[j][i] 1802134 22% scanner.c:455 f1_layer[ti].P =f1_layer[ti].U + tsum; (全CS命令の発見回数: 8051663) SWoPP 2005 (CPSY2005-22)
DL-CS対応状況 (188.ammp) atoms.c:152 if (ap->next = ap) break; atoms.c:181 if (ap == ap->next) ap=first; atoms.c:126 last->next = new; atoms.c:123 if (new->next == NULL) 1169021 99% atoms.c:150 if (ap->next == NULL) brak; (全CS命令の発見回数: 1169305) SWoPP 2005 (CPSY2005-22)
DL-CS対応状況 (181.mcf) 16% mcfutil.c:85 n->pot =n->b_a->cost +n->pred->pot 18% 17% (全CS命令の発見回数: 5399729) SWoPP 2005 (CPSY2005-22)
DL-CS対応状況 (171.swim) 23% 23% swim.c:416 (2重ループ中) _BLNK__1.z[i + 1 + (j + 1) * 1335 - 1336] = (fsdx * (_BLNK__1.v[i + 1 + (j + 1) * 1335 - 1336] - _BLNK__1.v[i + (j + 1) * 1335 - 1336]) - fsdy * (_BLNK__1.u[i + 1 + (j + 1) * 1335 - 1336] - _BLNK__1.u[i + 1 + j * 1335 - 1336])) / ( _BLNK__1.p[i + j * 1335 - 1336] + _BLNK__1.p[i + 1 + j * 1335 - 1336] + _BLNK__1.p[i + 1 + (j + 1) * 1335 - 1336] + _BLNK__1.p[i + (j + 1) * 1335 - 1336]); 23% (全CS命令の発見回数:1169911) SWoPP 2005 (CPSY2005-22)
まとめ (1/2) • メモリ・システム高性能化手法開発において, DL命令およびCS命令に着目することの妥当性を検討. • DL命令が性能に大きな影響を与えることを確認. • ほぼ全てのDL命令に対し,CS命令が存在.非常に密接に関連している場合もある. DL命令およびCS命令への着目は妥当. • 性能向上に寄与するかどうかの検討が必要. SWoPP 2005 (CPSY2005-22)
まとめ (2/2) • 今後の課題 • DL命令およびCS命令によるアクセス・パタンの調査(済み). • 入力を変えた場合の調査. • キャッシュ・ミスの特徴をより詳しく解析し,その特徴を反映した方法論の提案および評価. SWoPP 2005 (CPSY2005-22)
ご静聴ありがとうございました SWoPP 2005 (CPSY2005-22)