Using Runtime Activity to Dynamically Filter Out Inefficient Data Prefetches
Data prefetching is an effective way to bridge the increasing performance gap between processor and memory. Prefetching can improve performance but it has some side effects which may lead to no performance improvement while increasing memory pressure or to performance degradation. Adaptive prefetching aims at reducing negative effects of prefetching while keeping its advantages. This paper proposes an adaptive prefetching method based on runtime activity, which corresponds to the processor and memory activities retrieved by hardware counters, to predict the prefetch efficiency. Our approach highlights and relies on the correlation between the prefetch effects and runtime activity. Our method learns all along the execution this correlation to predict the prefetch efficiency in order to filter out predicted inefficient prefetches. Experimental results show that the proposed filter is able to cancel the negative impact of prefetching when it is unprofitable while keeping the performance improvement due to prefetching when it is beneficial. Our filter works similarly well when several threads are running simultaneously which shows that runtime activity enables an efficient adaptation of prefetch by providing information on running-applications behaviors and interactions.
KeywordsIEEE Computer Society Interval Duration Cache Line Dynamically Filter Runtime Information
Unable to display preview. Download preview PDF.
- 1.Intel 64 and IA-32 Architectures Optimization Reference Manual. Intel Corporation (2009)Google Scholar
- 5.Hu, Z., Kaxiras, S., Martonosi, M.: Timekeeping in the memory system: predicting and optimizing memory behavior. In: ISCA 2002: Proceedings of the 29th Annual International Symposium on Computer Architecture, pp. 209–220. IEEE Computer Society, Washington, DC, USA (2002)Google Scholar
- 7.Mutlu, O., Kim, H., Armstrong, D.N., Patt, Y.N.: Cache filtering techniques to reduce the negative impact of useless speculative memory references on processor performance. In: SBAC-PAD 2004: Proceedings of the 16th Symposium on Computer Architecture and High Performance Computing, pp. 2–9. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
- 9.Perez, D.G., Gilles, M., Temam, O.: Microlib: A case for the quantitative comparison of micro-architecture mechanisms. In: MICRO 37: Proceedings of the 37th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 43–54. IEEE Computer Society, New York (2004)Google Scholar
- 11.Smith, A.J.: Cache memories. Computing Surveys 14(3) (1982)Google Scholar
- 12.Srinath, S., Mutlu, O., Kim, H., Patt, Y.N.: Feedback directed prefetching: Improving the performance and bandwidth-efficiency of hardware prefetchers. In: HPCA 2007: Proceedings of the 2007 IEEE 13th International Symposium on High Performance Computer Architecture, pp. 63–74. IEEE Computer Society, Washington, DC, USA (2007)CrossRefGoogle Scholar