Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Static Prediction of Silent Stores

Published: 16 November 2018 Publication History

Abstract

A store operation is called “silent” if it writes in memory a value that is already there. The ability to detect silent stores is important, because they might indicate performance bugs, might enable code optimizations, and might reveal opportunities of automatic parallelization, for instance. Silent stores are traditionally detected via profiling tools. In this article, we depart from this methodology and instead explore the following question: is it possible to predict silentness by analyzing the syntax of programs? The process of building an answer to this question is interesting in itself, given the stochastic nature of silent stores, which depend on data and coding style. To build such an answer, we have developed a methodology to classify store operations in terms of syntactic features of programs. Based on such features, we develop different kinds of predictors, some of which go much beyond what any trivial approach could achieve. To illustrate how static prediction can be employed in practice, we use it to optimize programs running on nonvolatile memory systems.

References

[1]
Rakesh Agrawal and Ramakrishnan Srikant. 1994. Fast algorithms for mining association rules in large databases. In VLDB. Morgan Kaufmann Publishers, San Francisco, 487--499.
[2]
Thomas Ball and James R. Larus. 1993. Branch prediction for free. In PLDI. ACM, New York, 300--313.
[3]
Gordon B. Bell, Kevin M. Lepak, and Mikko H. Lipasti. 2000. Characterization of silent stores. In PACT. IEEE, 133.
[4]
Rabab Bouziane, Erven Rohou, and Abdoulaye Gamatié. 2018. Compile-time silent-store elimination for energy efficiency: An analytic evaluation for non-volatile cache memory. In RAPIDO. HiPEAC, Manchester, 1--8.
[5]
Jeffrey Adam Butts and Guri Sohi. 2002. Dynamic dead-instruction detection and elimination. In ASPLOS. ACM, New York, 199--210.
[6]
Augustin Louis Cauchy. 1847. Méthode Générale pour la résolution des systèmes d’Équations simultanées. Comptes Rendus Hebd. Séances Acad. Sci. 25, 10 (1847), 536--538.
[7]
Milind Chabbi, Shasha Wen, and Xu Liu. 2018. Featherlight on-the-fly false-sharing detection. In PPoPP. ACM, New York, 152--167.
[8]
Shuai Che, Michael Boyer, Jiayuan Meng, David Tarjan, Jeremy W. Sheaffer, Sang-Ha Lee, and Kevin Skadron. 2009. Rodinia: A benchmark suite for heterogeneous computing. In IISWC. IEEE, 44--54.
[9]
David R. Cox. 1958. The regression analysis of binary sequences (with discussion). J. Roy. Stat. Soc. B 20 (1958), 215--242.
[10]
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. 1991. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. 13, 4 (1991), 451--490.
[11]
Arthur P. Dempster. 1967. Upper and lower probabilities induced by a multivalued mapping. Ann. Math. Stat. 38, 2 (1967), 325--339.
[12]
Julien Dusser, Thomas Piquet, and André Seznec. 2009. Zero-content augmented caches. In ICS. ACM, New York, 46--55.
[13]
Geoffrey W. Hill. 1970. Algorithm 395: Student’s T-distribution. Commun. ACM 13, 10 (1970), 617--619.
[14]
Samira Khan, Chris Wilkerson, Zhe Wang, Alaa R. Alameldeen, Donghyuk Lee, and Onur Mutlu. 2017. Detecting and mitigating data-dependent DRAM failures by exploiting current memory content. In MICRO. ACM, New York, 27--40.
[15]
Chris Lattner and Vikram Adve. 2004. LLVM: A compilation framework for lifelong program analysis 8 transformation. In CGO. IEEE, 75--85.
[16]
Guilherme V. Leobas, Breno C. F. Guimarães, and Fernando M. Q. Pereira. 2018. More than meets the eye: Invisible instructions. In SBLP. ACM, New York, 27--34.
[17]
Kevin M. Lepak and Mikko H. Lipasti. 2000a. On the value locality of store instructions. In ISCA. ACM, New York, 182--191.
[18]
Kevin M. Lepak and Mikko H. Lipasti. 2000b. Silent stores for free. In MICRO. ACM, New York, 22--31.
[19]
Kevin M. Lepak and Mikko H. Lipasti. 2002. Temporally silent stores. In ASPLOS. ACM, New York, 30--41.
[20]
Mikko H. Lipasti and John Paul Shen. 1996. Exceeding the dataflow limit via value prediction. In MICRO. IEEE, 226--237.
[21]
Mikko H. Lipasti, Christopher B. Wilkerson, and John Paul Shen. 1996. Value locality and load value prediction. In ASPLOS. ACM, New York, 138--147.
[22]
Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. 2005. Pin: Building customized program analysis tools with dynamic instrumentation. In PLDI. ACM, New York, 190--200.
[23]
Sparsh Mittal and Jeffrey S. Vetter. 2016. A survey of software techniques for using non-volatile memories for storage and main memory systems. Trans. Parallel Distrib. Syst. 27, 5 (2016), 1537--1550.
[24]
Fernando Magno Quintao Pereira, Raphael Ernani Rodrigues, and Victor Hugo Sperle Campos. 2013. A fast and low-overhead technique to secure programs against integer overflows. In CGO. IEEE, 1--11.
[25]
Ravi Rajwar and James R. Goodman. 2001. Speculative lock elision: Enabling highly concurrent multithreaded execution. In MICRO. IEEE, 294--305.
[26]
Glenn Shafer. 1976. A Mathematical Theory of Evidence. Princeton University Press, Princeton, NJ.
[27]
Sam S. Stone, Kevin M. Woley, and Matthew I. Frank. 2005. Address-indexed memory disambiguation and store-to-load forwarding. In MICRO. IEEE, 171--182.
[28]
Samantika Subramaniam and Gabriel H. Loh. 2006. Fire-and-forget: Load/store scheduling with no store queue at all. In MICRO. IEEE, 273--284.
[29]
Shasha Wen, Milind Chabbi, and Xu Liu. 2017. REDSPY: Exploring value locality in software. In ASPLOS. ACM, New York, 47--61.
[30]
Shasha Wen, Xu Liu, John Byrne, and Milind Chabbi. 2018. Watching for software inefficiencies with witch. In ASPLOS. ACM, New York, 332--347.
[31]
Youfeng Wu and James R. Larus. 1994. Static branch frequency and program profile analysis. In MICRO. ACM, New York, 1--11.
[32]
Ping Zhou, Bo Zhao, Jun Yang, and Youtao Zhang. 2009. Energy reduction for STT-RAM using early write termination. In ICCAD. ACM, New York, 264--268.

Cited By

View all
  • (2022)Program representations for predictive compilation: State of affairs in the early 20’sJournal of Computer Languages10.1016/j.cola.2022.10117173(101171)Online publication date: Dec-2022
  • (2021)VESPA: static profiling for binary optimizationProceedings of the ACM on Programming Languages10.1145/34855215:OOPSLA(1-28)Online publication date: 15-Oct-2021
  • (2021)AnghaBenchProceedings of the 2021 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO51591.2021.9370322(378-390)Online publication date: 27-Feb-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Architecture and Code Optimization
ACM Transactions on Architecture and Code Optimization  Volume 15, Issue 4
December 2018
706 pages
ISSN:1544-3566
EISSN:1544-3973
DOI:10.1145/3284745
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 November 2018
Accepted: 01 September 2018
Revised: 01 August 2018
Received: 01 May 2018
Published in TACO Volume 15, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Silent stores
  2. code optimization
  3. machine learning
  4. nonvolatile memory
  5. static analysis

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • ANR (the CONTINUUM project)
  • CNPQ
  • MSc scholarship from CAPES

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)151
  • Downloads (Last 6 weeks)36
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Program representations for predictive compilation: State of affairs in the early 20’sJournal of Computer Languages10.1016/j.cola.2022.10117173(101171)Online publication date: Dec-2022
  • (2021)VESPA: static profiling for binary optimizationProceedings of the ACM on Programming Languages10.1145/34855215:OOPSLA(1-28)Online publication date: 15-Oct-2021
  • (2021)AnghaBenchProceedings of the 2021 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO51591.2021.9370322(378-390)Online publication date: 27-Feb-2021
  • (2020)YACOSProceedings of the 24th Brazilian Symposium on Context-Oriented Programming and Advanced Modularity10.1145/3427081.3427089(56-63)Online publication date: 19-Oct-2020

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media