Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/647478.727936guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Value-Profile Guided Stride Prefetching for Irregular Code

Published: 08 April 2002 Publication History
  • Get Citation Alerts
  • Abstract

    Memory operations in irregular code are difficult to prefetch, as the future address of a memory location is hard to anticipate by a compiler. However, recent studies as well as our experience indicate that many irregular programs contain loads with near-constant strides. This paper presents a novel compiler technique to profile and prefetch for those loads. The profile captures not only the dominant stride values for each profiled load, but also the differences between the successive strides of the load. The profile information helps the compiler to classify load instructions into strongly or weakly strided and single-strided or phased multi-strided. The prefetching decisions guided by the load classifications are highly selective and beneficial. We obtain significant performance improvement for the CPU2000 integer programs running on Itanium machines. For example, we achieve a 1.55x speedup for "181.mcf", 1.15x for "254.gap", 1.08x for "197.parser" and smaller gains in other benchmarks. We also show that the performance gain is stable across profile data sets and that the profiling overhead is low. These benefits make the new technique suitable for a production compiler.

    References

    [1]
    Ball, T. and J. Larus, "Optimally profiling and tracing programs," ACM Transactions on Programming Languages and Systems, 16(3): 1319-1360, July 1994.
    [2]
    Calder, B., P. Feller and A. Eustance, "Value Profiling," MICRO30, Dec. 1997.
    [3]
    Callahan, D., K. Kennedy and A. Porterfield, "Software Prefetching", ASPLOS4, 1991, 40-52.
    [4]
    Collins, J., H. Wang, H. Christopher, D. Tullsen, C. J. Hughes, Y. F. Lee, D. Lavery and J. Shen, "Speculative Pre-computation: Long-range Prefetching of Delinquent Loads," ISCA28, 2001.
    [5]
    Dahlgren, F., Stenstrom, P., "Evaluation of Hardware-Based Stride and Sequential Prefetching in Shared-Memory Multiprocessors", IEEE Transactions on Parallel and Distributed Systems, Vol. 7, No. 4, April 1996.
    [6]
    Doshi, G., R. Krishnaiyer and K. Muthukumar, "Optimizing Software Data Prefetches with Rotating Registers", PACT 2001.
    [7]
    Farkas, K., P. Chow, N. Jouppi, and Z. Vranesic, "Memory-system design considerations for dynamically-scheduled processors," ISCA24, June 1997.
    [8]
    Huang, Xianglong, Zhenlin Wang and K.S. McKinley, "Compiling for the Impulse memory controller," PACT2001. Pages: 141-150
    [9]
    Intel Corp, "Benchmarks: Intel® Itanium ¿. based systems," http://www.intel.com/eBusiness/products/ia64/overview/bm012101.htm.
    [10]
    Intel Corp, Intel® Itanium. Processor Hardware Developer's Manual, 2000. http://developer.intel.com/design/ia-64/manuals.htm.
    [11]
    Jouppi, N., "Improving direct-mapped cache performance by the addition of a small fully associative cache and prefetch buffers," ISCA17, May 1990
    [12]
    Karlsson, M., F. Dahlgren and P. Stenstrom, "A Prefetching Technique for Irregular Accesses to Linked Data Structures," HPCA6, January. 2000
    [13]
    Lipasti, M.H., W.J. Schmidt, S.R. Kunkel and R.R. Roediger, "SPAID: Software Prefetching in Pointer and Call Intensive Environments", MICRO28, Nov 1995, 231-236.
    [14]
    Luk, C., "Tolerating Memory Latency through Software-Controlled Pre-Execution in Simultaneous Multithreading Processors," ISCA28, 2001.
    [15]
    Luk, C.K. and T.C. Mowry, "Compiler-Based Prefetching for Recursive Data Structures," ASPLOS7, September 1996, 222-233.
    [16]
    Mahlke, S.A., D.C. Lin, W.Y. Chen, R.E. Hank and R.A. Bringmann, "Effective Compiler Support for Predicated Execution Using Hyperblock," MICRO25, Dec. 1992, pp 45-54.
    [17]
    Mowry, T.C., M.S. Lam and A. Gupta, "Design and Evaluation of a Compiler Algorithm for Prefetching," ASPLOS5, October 1992, 62-73.
    [18]
    Palacharla, S. and R. Kessler, "Evaluating stream buffers as secondary cache replacement," ISCA21, April 1994.
    [19]
    Roth, A., and G. Sohi. "Effective Jump-Pointer Prefetching for linked data structures," ISCA26, June 1999, 111-121.
    [20]
    Santhanam, V., E. Gornish and W. Hsu, "Data Prefetching on the HP PA- 8000," ISCA24, June 1997, 264-273.
    [21]
    Sherwood, T., S. Sair, B. Calder, "Predictor-Directed Stream Buffers," MICRO33, Dec. 2000.
    [22]
    Standard Performance Evaluation Corporation, "All SPEC CFP2000 Results Published by SPEC," http://www.spec.org/osg/cpu2000/results/res2001q2/ cpu2000-20010522-00663.html, 2001.
    [23]
    Stoutchinin, A., J. N. Amaral, G. Gao, J. Dehnert, S. Jain, and A. Douillet "Speculative Prefetching of Induction Pointers," CC 2001, April, 2001. Also in LNCS 2207, pp 289-303, 2001.
    [24]
    Wiel, V., S.P., Lilja, D.J. "When caches aren't enough: data prefetching techniques," Computer, Volume: 30 Issue: 7, July 1997, Page(s): 23 -30
    [25]
    Zilles, C. and G. Sohi, "Execution-based Prediction Using Speculative Slices," ISCA28, 2001.

    Cited By

    View all
    • (2017)Software prefetching for indirect memory accessesProceedings of the 2017 International Symposium on Code Generation and Optimization10.5555/3049832.3049865(305-317)Online publication date: 4-Feb-2017
    • (2010)Automatically generating symbolic prefetches for distributed transactional memoriesProceedings of the ACM/IFIP/USENIX 11th International Conference on Middleware10.5555/2023718.2023743(355-375)Online publication date: 29-Nov-2010
    • (2004)Prefetch injection based on hardware monitoring and object metadataACM SIGPLAN Notices10.1145/996893.99687339:6(267-276)Online publication date: 9-Jun-2004
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    CC '02: Proceedings of the 11th International Conference on Compiler Construction
    April 2002
    343 pages
    ISBN:3540433694

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 08 April 2002

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)Software prefetching for indirect memory accessesProceedings of the 2017 International Symposium on Code Generation and Optimization10.5555/3049832.3049865(305-317)Online publication date: 4-Feb-2017
    • (2010)Automatically generating symbolic prefetches for distributed transactional memoriesProceedings of the ACM/IFIP/USENIX 11th International Conference on Middleware10.5555/2023718.2023743(355-375)Online publication date: 29-Nov-2010
    • (2004)Prefetch injection based on hardware monitoring and object metadataACM SIGPLAN Notices10.1145/996893.99687339:6(267-276)Online publication date: 9-Jun-2004
    • (2004)Prefetch injection based on hardware monitoring and object metadataProceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation10.1145/996841.996873(267-276)Online publication date: 9-Jun-2004
    • (2003)Stride prefetching by dynamically inspecting objectsProceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation10.1145/781131.781161(269-277)Online publication date: 9-Jun-2003
    • (2003)Stride prefetching by dynamically inspecting objectsACM SIGPLAN Notices10.1145/780822.78116138:5(269-277)Online publication date: 9-May-2003
    • (2002)Efficient discovery of regular stride patterns in irregular programs and its use in compiler prefetchingACM SIGPLAN Notices10.1145/543552.51255537:5(210-221)Online publication date: 17-May-2002
    • (2002)Profile-guided post-link stride prefetchingProceedings of the 16th international conference on Supercomputing10.1145/514191.514217(167-178)Online publication date: 22-Jun-2002
    • (2002)Efficient discovery of regular stride patterns in irregular programs and its use in compiler prefetchingProceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementation10.1145/512529.512555(210-221)Online publication date: 17-Jun-2002

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media