Prefetch and Cache in PLDI'02 <ul><li>Dynamic Hot Data Stream Prefetching... </li><ul><li>プロファイリングとHot Data Streamの解析に基づくダ...
読んだ人  みよし たけふみ 2010.06.30 CITED BY  40
概要 <ul><li>プリフェッチは限られた場所でしか有効ではない
ダイナミックプリフェッチングの提案 </li><ul><li>Temporal data reference profile
Extract hot data stream
With the added prefetch inst(no profiler, analyzer) </li></ul><li>Improvement 5-19% speedup </li></ul>
Overview
Data Refs. Profiling and Analysis <ul><li>Bursty Tracing Framework for Low-over-head Temporal Profiling </li><ul><li>Not o...
eg.  cdeabcdeabfg と abcdefabcdeg </li></ul><li>Extensions for Online Optimization
Fast Hot Data Stream Detection </li></ul>
Bursty Tracing Framework [15]  for Low-overhead temporal profiling  2 つのバージョンを用意  nCheck と nInst で実行コードを選択 Vulcan でバイナリ変換し...
Extensions for Online Optilization
Fast Hot Data Stream Detection(1) = to compress the profile and infer its hierarchical structure. [23]
Fast Hot Data Stream Detection(2) v.heat  =  v.length*v.frequency A.heat = wA.length*A.coldUses
Overhead of profiling and analysis
Dynamic Prefetching <ul><li>Generating Detection and Prefetching Code
Injecting Detection and Prefetching Code </li></ul>
Generating Detection and Prefetching Code Hot data stream  v  =  v1v2...v{v.length}  into a head  v.head  =  v1v2...vheadL...
 
Performance impact
 
読んだ人  みよし たけふみ 2010.06.30 CITED BY  18
概要 <ul><li>Irregular data referencesのプリフェッチは難しい
重要なIrregularなload命令はストライドアクセスパタンをもっている(ようだ)
Upcoming SlideShare
Loading in...5
×

Dynamic Prefetching & Cache Optimizations

743

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
743
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dynamic Prefetching & Cache Optimizations

  1. 1. Prefetch and Cache in PLDI'02 <ul><li>Dynamic Hot Data Stream Prefetching... </li><ul><li>プロファイリングとHot Data Streamの解析に基づくダイナミックプリフェッチング手法の提案 </li></ul><li>Efficient Discovery of Regular Stride... </li><ul><li>Irregularなload命令のストライドパタンの発見 </li></ul><li>Static Load Classification for... </li><ul><li>load命令を20種に分類。Load-value predictionの利用をコンパイル時に決定する </li></ul></ul>
  2. 2. 読んだ人 みよし たけふみ 2010.06.30 CITED BY  40
  3. 3. 概要 <ul><li>プリフェッチは限られた場所でしか有効ではない
  4. 4. ダイナミックプリフェッチングの提案 </li><ul><li>Temporal data reference profile
  5. 5. Extract hot data stream
  6. 6. With the added prefetch inst(no profiler, analyzer) </li></ul><li>Improvement 5-19% speedup </li></ul>
  7. 7. Overview
  8. 8. Data Refs. Profiling and Analysis <ul><li>Bursty Tracing Framework for Low-over-head Temporal Profiling </li><ul><li>Not only the freq., but also temporal relationships
  9. 9. eg. cdeabcdeabfg と abcdefabcdeg </li></ul><li>Extensions for Online Optimization
  10. 10. Fast Hot Data Stream Detection </li></ul>
  11. 11. Bursty Tracing Framework [15] for Low-overhead temporal profiling 2 つのバージョンを用意 nCheck と nInst で実行コードを選択 Vulcan でバイナリ変換してチェックコード等を挿入
  12. 12. Extensions for Online Optilization
  13. 13. Fast Hot Data Stream Detection(1) = to compress the profile and infer its hierarchical structure. [23]
  14. 14. Fast Hot Data Stream Detection(2) v.heat = v.length*v.frequency A.heat = wA.length*A.coldUses
  15. 15. Overhead of profiling and analysis
  16. 16. Dynamic Prefetching <ul><li>Generating Detection and Prefetching Code
  17. 17. Injecting Detection and Prefetching Code </li></ul>
  18. 18. Generating Detection and Prefetching Code Hot data stream v = v1v2...v{v.length} into a head v.head = v1v2...vheadLen and a tail v.tail = v{headLen+1}v{headLen+2}...v{v.length} .
  19. 20. Performance impact
  20. 22. 読んだ人 みよし たけふみ 2010.06.30 CITED BY  18
  21. 23. 概要 <ul><li>Irregular data referencesのプリフェッチは難しい
  22. 24. 重要なIrregularなload命令はストライドアクセスパタンをもっている(ようだ)
  23. 25. ストライド付きload命令を発見するプロファイル手法 </li><ul><li>ストライド情報のプロファイルをedge frequencyなプロファイラに組み込む
  24. 26. 17%の速度低下 </li></ul><li>181.mcf: 1.59x, 254.gap: 1.14x などなど </li></ul>
  25. 27. 読んだ人 みよし たけふみ 2010.06.30 CITED BY  2
  26. 28. 概要 <ul><li>Load-value prediction [20] : loadの結果を推測する
  27. 29. Load-value predictionの有効利用には、キャッシュミスし正しく予測されるloadにSpeculationが限られる </li><ul><li>従来: Hardware-/Profile-based method </li></ul><li>コンパイル時にSpeculationの決定を行う </li><ul><li>コンパイラによるloadの分類手法
  28. 30. CとJavaで効果を評価 </li></ul></ul>[20] M. H. Lipasti, C. B. Wilkerson, and J. P. Shen. Value Locality and Load Value Prediction. In Proceedings of the second international conference on architectural support for programming languages and operating systems , pages 138–147, 1996.
  29. 31. もう少し詳しい概要 <ul><li>Load命令を静的に20種に分類 </li><ul><li>Region: S tack, H eap, G lobal space
  30. 32. Kind: object F ield, A rray element, S calar variable
  31. 33. Type: P ointer, N on-pointer </li></ul><li>16K, 64K, 256Kの2-way set-associative cache
  32. 34. 5 load-value predictors, 2048/infinite entries </li></ul>(i) lv , which predicts the last value for every load (ii) l4v , which predicts one of the last four values for every load (iii) st2d , which uses strides to predict loads (iv) fcm , which uses a representation of the context of preceding loads to predict a load (v) dfcm , which enhances fcm with strides.
  33. 36. 種類別キャッシュミス率
  34. 37. Predictionの成功率
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×