キャッシュ・ミス頻発命令と その特徴解析 ○堂後靖博† 三輪英樹‡ ヴィクトル・M・グラ-ル・フェヘイラ‡ 井上弘士‡ 村上和彰‡ † 福岡大学 2004/12/2 ‡ 九州大学 1 発表内容 • 背景(Memory Wall Problem、メモリ性能向上技術の課題) • 実験環境 • キャッシュ・ミス頻発命令の特徴解析 – – – – 発生頻度 入力依存 時間依存 アクセス・パタン • 結論 – キャッシュ・ミス頻発命令はプログラム実行振舞いにより 特徴が異なる – 特徴に応じた最適化手法の適用 2004/12/2 2 背景 プロセッサ-主記憶間の性能差拡大 (Memory Wall Problem) 解決手段 キャッシュ・ミス頻発命令(Delinquent命令:D命令) DLoad命令 (Top10) DLoad命令(Top50) 90%以上! 2004/12/2 出典:J.D.Collins,H.Wand,D.M.Tullsen,C.Hughes,Y.F.Lee,D.Lavery,J.P.Shen, ”Speculative Precomputation:Long-range Prefetching of Delinquent Loads” 3 D命令に着目したメモリ性能向上技術の課題 これまでのD命令に着目したメモリ性能向上技術 ⇒ 固定的に決定したD命令を活用 プログラム実行振舞いの依存項目 – プロセッサ構成 – メモリ構成 – 入力データ 各D命令の振舞いが 大きく異なるのでは? D命令に着目したより効果的な高性能化方式の確立 D命令の特徴を詳細に解析 実行振舞いに適した最適化方式の選択 2004/12/2 4 D命令の特徴解析 • 発生頻度 プログラムの違いがD命令の出現頻度に与える影響 入力データの違いがD命令の出現頻度に与える影響 • 入力依存 入力データの違いがD命令の種類に与える影響 • 時間依存 プログラム実行中におけるD命令の発生頻度の変化 各D命令の生存区間 • アクセス・パタン 各D命令が参照するアドレス・パタンの調査 2004/12/2 5 実験環境(1/2) • 高性能プロセッサを想定 – L2キャッシュまでがオンチップ化 • シミュレータ:SimpleScalar(ver.3.0d) – シミュレータ構成 • 命令発行:out-of-order • キャッシュ・メモリ – L1データ:32KB(64B/lines,2way,256lines) – L1命令:32KB(64B/lines,1way,512lines) – L2命令データ統合:2MB(64B/lines,4way,8192lines) 2004/12/2 6 実験環境(2/2) • ベンチマーク・プログラム – SPEC CPU 2000ベンチマーク・セット • 浮動小数点演算プログラム(3種類): – 177.mesa、179.art、183.equake • 整数演算プログラム(7種類): – 164.gzip、175.vpr、176.gcc、181.mcf、197.parser、 255.vortex、256.bzip2 • 入力データ – small input(完全実行) – reference input(fwd:20億命令、exe:2億命令) – training input(fwd:20億命令、exe:2億命令) 2004/12/2 7 キャッシュ・ミス頻発命令の特徴解析 オフチップ・アクセスを引起すL2ミス • 発生頻度 プログラムの違いがD命令の出現頻度に与える影響 入力データの違いがD命令の出現頻度に与える影響 • 入力依存 入力データの違いがD命令の種類に与える影響 • 時間依存 プログラム実行中におけるD命令の発生頻度の変化 各D命令の生存区間 • アクセス・パタン 各D命令が参照するアドレス・パタンの調査 2004/12/2 8 2004/12/2 D命令は存在! 25 6.b zip 2 or te x 25 5.v er e qu ak ref input L2 19 7.p ar s 18 3.e cf small input L2 18 1.m rt 80% 17 9.a a es 17 7.m cc 17 6.g pr zip 17 5.v 16 4.g Delinquent命令(Top10)が 全L2キャッシュ・ミスに占める割合 D命令発生頻度 train input L2 100% 90%以上! 60% 40% 20% 0% ベンチマーク・プログラム 9 キャッシュ・ミス頻発命令の特徴解析 • 発生頻度 プログラムの違いがD命令の出現頻度に与える影響 入力データの違いがD命令の出現頻度に与える影響 • 入力依存 入力データの違いがD命令の種類に与える影響 • 時間依存 プログラム実行中におけるD命令の発生頻度の変化 各D命令の生存区間 • アクセス・パタン 各D命令が参照するアドレス・パタンの調査 2004/12/2 10 2004/12/2 90%以上が10個のD命令 25 6.b zip 2 or te x 25 5.v se r e qu ak ref input L2 19 7.p ar 18 3.e cf small input L2 18 1.m rt 17 9.a a es 17 7.m cc 17 6.g pr z ip 17 5.v 16 4.g Delinquent命令(Top10)が 全L2キャッシュ・ミスに占める割合 D命令発生頻度 train input L2 100% 80% 60% 40% 20% 0% ベンチマーク・プログラム 11 25 6.b zip 2 or te x 25 5.v er e qu ak ref input L2 19 7.p ar s 18 3.e cf small input L2 18 1.m rt 17 9.a a es 17 7.m cc 17 6.g pr zip 17 5.v 16 4.g Delinquent命令(Top10)が 全L2キャッシュ・ミスに占める割合 D命令発生頻度 train input L2 100% 80% 60% 40% 20% 0% ベンチマーク・プログラム 2004/12/2 12 入力Rに比べ、他入力ではミスを発生させる命令の局所性が低い 2004/12/2 25 6.b zip 2 or te x 25 5.v se r e qu ak ref input L2 19 7.p ar 18 3.e cf small input L2 18 1.m rt 17 9.a a es 17 7.m cc 17 6.g pr z ip 17 5.v 16 4.g Delinquent命令(Top10)が 全L2キャッシュ・ミスに占める割合 D命令発生頻度 train input L2 100% 80% 60% 40% 20% 0% ベンチマーク・プログラム 入力の違いがD命令の存在に与える影響は小さい!! 13 キャッシュ・ミス頻発命令の特徴解析 • 発生頻度 プログラムの違いがD命令の出現頻度に与える影響 入力データの違いがD命令の出現頻度に与える影響 • 入力依存 入力データの違いがD命令の種類に与える影響 • 時間依存 プログラム実行中におけるD命令の発生頻度の変化 各D命令の生存区間 • アクセス・パタン 各D命令が参照するアドレス・パタンの調査 2004/12/2 14 入力依存性 small vs. reference Top 16(R) Top 32(R) Top 64(R) 100% 80% 入力SでのD命令 が検出されていない 60% 40% 20% ベンチマーク・プログラム 入力により異なるD命令が存在!! 25 6.b zip 2 or te x 25 5.v se r 19 7.p ar e qu ak 18 3.e cf 18 1.m rt 17 9.a a es 17 7.m cc 17 6.g 17 5.v 16 4.g 2004/12/2 pr 0% zip small inputでのD命令がreference input におけるD命令を包含する割合 Top 8(R) 15 2004/12/2 ベンチマーク・プログラム 比較的高い包含率 25 6.b zip 2 or te x se r e Top 32(R) 25 5.v 19 7.p ar qu ak Top 16(R) 18 3.e cf 18 1.m rt a Top 8(R) 17 9.a es 17 7.m cc 17 6.g pr 17 5.v zip 16 4.g small inputでのD命令がreference input におけるD命令を包含する割合 入力依存性 small vs. reference Top 64(R) 100% 80% 60% 40% 20% 0% 16 2004/12/2 25 6.b zip 2 or te x se r e Top 32(R) 25 5.v 19 7.p ar qu ak Top 16(R) 18 3.e cf 18 1.m rt a Top 8(R) 17 9.a es 17 7.m cc 17 6.g pr 17 5.v zip 16 4.g small inputでのD命令がreference input におけるD命令を包含する割合 入力依存性 small vs. reference Top 64(R) 100% 80% 60% 40% 20% 0% ベンチマーク・プログラム 入力が検出されるD命令の種類に与える影響→比較的大!! 17 キャッシュ・ミス頻発命令の特徴解析 • 発生頻度 プログラムの違いがD命令の出現頻度に与える影響 入力データの違いがD命令の出現頻度に与える影響 • 入力依存 入力データの違いがD命令の種類に与える影響 • 時間依存 プログラム実行中におけるD命令の発生頻度の変化 各D命令の生存区間 • アクセス・パタン 各D命令が参照するアドレス・パタンの調査 2004/12/2 18 D命令の時間依存(164.gzip) 6 D命令生存! 5 ミス回数(×106) D1 4 ミス発生なし D2 3 D3 2 D4 1 最適化の恩恵→小 D5 0 0 2004/12/2 15 30 45 実行サイクル(×107) 60 75 19 D命令の時間依存(177.mesa) 10 D1 D2 ミス回数(×104) 8 D3 6 各D命令のミス発生状況は プログラム実行と共に大きく変化 4 2 D4 D5 0 0 2004/12/2 15 30 45 実行サイクル(×107) 60 75 20 キャッシュ・ミス頻発命令の特徴解析 • 発生頻度 プログラムの違いがD命令の出現頻度に与える影響 入力データの違いがD命令の出現頻度に与える影響 • 入力依存 入力データの違いがD命令の種類に与える影響 • 時間依存 プログラム実行中におけるD命令の発生頻度の変化 各D命令の生存区間 • アクセス・パタン 各D命令が参照するアドレス・パタンの調査 2004/12/2 21 D命令のアクセス・パタン(164.gzip:D1) 2710 メモリ・アドレス(×105) 2705 2700 2695 2690 固定ストライド型 2685 0 5000 10000 2004/12/2 ミス発生時における参照アドレス 15000 ミス回数 20000 25000 30000 22 D命令のアクセス・パタン(176.gcc:D1) メモリ・アドレス(×105) 25000 20000 15000 10000 局所集中型 5000 0 0 2004/12/2 5000 10000 15000 ミス回数 20000 25000 30000 23 D命令のアクセス・パタン(181.mcf:D1) 2800 メモリ・アドレス(×105) 2780 2760 2740 2720 2700 2680 広域分散型 2660 0 2004/12/2 5000 10000 15000 ミス回数 20000 25000 30000 24 キャッシュ・ミス頻発命令の特徴解析 • 発生頻度 多くのプログラムでD命令が存在 入力データの違いがD命令の出現頻度に与える影響 小 • 入力依存 入力データの違いがD命令の種類に与える影響 大 • 時間依存 ミス発生状況はプログラム実行と共に大きく変化 各D命令の生存区間 → D命令によって異なる • アクセス・パタン 固定ストライド型、局所集中型、広域分散型 2004/12/2 25 D命令の活用方法 D命令を考慮したメモリ性能向上のための課題 D命令の検出 静的プロファイリング 動的プロファイリング プロファイル情報の活用 D命令の入力依存、時間依存 動的プロファイリング 有効!! D命令に基づく最適化 D命令の時間依存、アクセスパタン 各D命令の特徴に応じた手段の適用!! 2004/12/2 26 結論 • D命令の特徴解析 – 固定的なD命令の決定だけでは不十分 – 各D命令の特徴に応じた手段の適用が必要 • 今後の課題 – D命令を考慮したメモリ高性能化技術の確立 – 最適化手法の適用に対する性能評価 2004/12/2 27 2004/12/2 28 2004/12/2 ベンチマーク・プログラム 25 6.b zip 2 or te x se r e Top 32(T) 25 5.v 19 7.p ar qu ak Top 16(T) 18 3.e cf 18 1.m rt Top 8(T) 17 9.a a cc pr 17 7.m es 17 6.g 17 5.v zip 16 4.g small inputでのD命令がtrain input におけるD命令を包含する割合 入力依存性 small vs. training Top 64(T) 100% 80% 60% 40% 20% 0% 29
© Copyright 2024 ExpyDoc