Advertisement

Using Runtime Activity to Dynamically Filter Out Inefficient Data Prefetches

  • Oussama Gamoudi
  • Nathalie Drach
  • Karine Heydemann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6852)

Abstract

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.

Keywords

IEEE Computer Society Interval Duration Cache Line Dynamically Filter Runtime Information 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Intel 64 and IA-32 Architectures Optimization Reference Manual. Intel Corporation (2009)Google Scholar
  2. 2.
    Binkert, N.L., Dreslinski, R.G., Hsu, L.R., Lim, K.T., Saidi, A.G., Reinhardt, S.K.: The m5 simulator: Modeling networked systems. IEEE Micro 25(1), 52–60 (2006)CrossRefGoogle Scholar
  3. 3.
    Dahlgren, F., Dubois, M., Stenstrm, P.: Sequential hardware prefetching in shared-memory multiprocessors. IEEE Trans. Parallel Distrib. Syst. 25(1), 733–746 (1995)CrossRefGoogle Scholar
  4. 4.
    Fu, J.W.C., Patel, J.H., Janssens, B.L.: Stride directed prefetching in scalar processors. In: MICRO 25: Proceedings of the 25th Annual International Symposium on Microarchitecture, pp. 102–110. IEEE Computer Society Press, Los Alamitos (1992)CrossRefGoogle Scholar
  5. 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
  6. 6.
    Lai, A.-C., Fide, C., Falsafi, B.: Dead-block prediction & dead-block correlating prefetchers. In: ISCA 2001: Proceedings of the 28th Annual International Symposium on Computer Architecture, pp. 144–154. ACM, New York (2001)CrossRefGoogle Scholar
  7. 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
  8. 8.
    Nesbit, K.J., Dhodapkar, D., Smith, J.E.: Ac/dc: An adaptive data cache prefetcher. In: PACT 2004: Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques, pp. 135–145. IEEE Computer Society, New York (2004)CrossRefGoogle Scholar
  9. 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
  10. 10.
    Saavedra, R.H., Park, D.: Improving the effectiveness of software prefetching with adaptive execution. In: PACT 1996: Proceedings of the 1996 Conference on Parallel Architectures and Compilation Techniques, p. 68. IEEE Computer Society, Washington, DC, USA (1996)CrossRefGoogle Scholar
  11. 11.
    Smith, A.J.: Cache memories. Computing Surveys 14(3) (1982)Google Scholar
  12. 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
  13. 13.
    Srinivasan, V., Davidson, E.S., Tyson, G.S.: A prefetch taxonomy. IEEE Trans. Comput. 53(2), 126–140 (2004)CrossRefGoogle Scholar
  14. 14.
    Zhuang, X., Lee, H.-H.S.: Reducing cache pollution via dynamic data prefetch filtering. IEEE Trans. Comput. 56(1), 18–31 (2007)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Oussama Gamoudi
    • 1
  • Nathalie Drach
    • 1
  • Karine Heydemann
    • 1
  1. 1.UPMC/LIP6ParisFrance

Personalised recommendations