5. Data Refs. Profiling and Analysis
● Bursty Tracing Framework for Low-over-head
Temporal Profiling
● Not only the freq., but also temporal relationships
eg. cdeabcdeabfgとabcdefabcdeg
● Extensions for Online Optimization
● Fast Hot Data Stream Detection
11. Dynamic Prefetching
● Generating Detection and Prefetching Code
● Injecting Detection and Prefetching Code
12. 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]
●
Load-value prediction : loadの結果を推測する
● Load-value predictionの有効利用には、キャッシュミス
し正しく予測されるloadにSpeculationが限られる
● 従来: Hardware-/Profile-based method
● コンパイル時にSpeculationの決定を行う
● コンパイラによるloadの分類手法
● CとJavaで効果を評価
[20] M. H. Lipasti, C. B. Wilkerson, and J. P. Shen. Value Locality and Load Value Prediction.
In Proceedings ofthe second international conference on architectural support for
programming languages and operatingsystems, pages 138–147, 1996.
20. もう少し詳しい概要
● Load命令を静的に20種に分類
● Region: Stack, Heap, Global space
● Kind: object Field, Array element, Scalar variable
● Type: Pointer, Non-pointer
● 16K, 64K, 256Kの2-way set-associative cache
● 5 load-value predictors, 2048/infinite entries
(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.