Title: 48x36 poster template
1FREQuest Prefetching in the light of Frequent
Episodes Leman Akoglu and Chukwuemeka Uchenna
Ezekwe Carnegie Mellon University School of
Computer Science, Electrical and Computer
Engineering
PROBLEM / MOTIVATION
PROPOSED METHOD
EXPERIMENTAL RESULTS
- As the gap between memory and processor
speeds increases, prefetching offers a way
to reduce memory latency and improve system
performance - Many applications have complex memory request
streams that
are difficult to profile - Stride-based prefetching is insufficient
across large spatial memory regions - Some memory request streams possess frequent
episodes that can be used to identify what data
should be prefetched - FREQuest is a software based solution that
identifies these episodes and uses them to
determine future memory requests
BACKGROUND
Design choices 1 Prefetcher runs as a
separate thread in CPU -- reduce H/W cost 2
Prefetches are inserted into L2 -- L1 caches are
not thrashed STAGE 1 Profiling Trace/collect
L2 miss addresses STAGE 2 Episode Mining
Extract frequent address episodes from the traces
collected in Stage 1 STAGE 3 Active Profiling
Collect L2 miss addresses while actively looking
for prefix-matching with episode extracted in
Stage 2 in which case
prefetch requests are inserted. Optimizations
1 Interval Constraints If there are small
intervals between recurrences of a given episode,
redundant prefetch requests occur. So,
we introduce a minimum number of addresses that
should be requested before a prefetch is demanded
-- redundancy could reduce. 2
Out-of-order Insertions Out of order execution
can change the execution order of addresses in
frequent episodes. So,
instead of prefix-matching, we did
address-matching -- could increase coverage in
sake of accuracy. 3 Duplicate/Overlap
elimination Some episodes contained multiple
copies of the same address, and severall
episodes overlapped. So, we did
duplicate elimination and considered only one of
the overlapping episodes could
decrease redundancy.
What is a frequent episode? Frequent episodes are
frequently reoccurring patterns in the memory
request stream. How do you define frequency? If
the fraction of the non-overlapping occurrences
of an episode in the given sequence is higher
than a threshold (minsup, for minimum support),
then it is frequent. How to detect frequent
episodes? Iteratively i 1 1 Detect
length-i frequent episodes 2 Combine
length-i episodes to obtain a set of length-(i1)
candidate episodes. 3 Count frequencies
of length-(i1) candidates and drop non-
frequent ones 4 i and Go to step 2 if i
max_length
CONCLUSIONS
- FREQuest improves the performance of
applications that have a large number of
frequent episodes -- irregular access patterns
across memory regions - Allowing permutations of frequent episodes
gives a slight increase to coverage but greatly
increases the number of redundant prefetches - Future work will utilize cycle accurate
simulators to better analyze system performance
in terms of timeliness