Skip to main content

2019 | OriginalPaper | Buchkapitel

Performance Exploration Through Optimistic Static Program Annotations

verfasst von : Johannes Doerfert, Brian Homerding, Hal Finkel

Erschienen in: High Performance Computing

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Compilers are limited by the static information directly or indirectly encoded in the program. Low-level languages, such as https://static-content.springer.com/image/chp%3A10.1007%2F978-3-030-20656-7_13/MediaObjects/478393_1_En_13_Figa_HTML.gif , are considered problematic as their weak type system and relaxed memory semantic allows for various, sometimes non-obvious, behaviors. Since compilers have to preserve the program semantics for all program executions, the existence of exceptional behavior can prevent optimizations that the developer would consider valid and might expect. Analyses to guarantee the absence of disruptive and unlikely situations are consequently an indispensable part of an optimizing compiler. However, such analyses have to be approximative and limited in scope as global and exact solutions are infeasible for any non-trivial program.
In this paper, we present an automated tool to measure the effect missing static information has on the optimizations applied to a given program. The approach generates an optimistically optimized program version which, compared to the original, defines a performance gap that can be closed by better compiler analyses and selective static program annotations.
Our evaluation on six already tuned proxy applications for high-performance codes shows speedups of up to \(20.6\%\). This clearly indicates that static uncertainty limits performance. At the same time, we observed that compilers are often unable to utilize additional static information. Thus, manual annotation of all correct static information is therefore not only error prone but also mostly redundant.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
The speculatable annotation is fairly new so we add the implied readnone explicitly.
 
2
GCC’s attribute leaf is similar to https://static-content.springer.com/image/chp%3A10.1007%2F978-3-030-20656-7_13/MediaObjects/478393_1_En_13_Figm_HTML.gif in LLVM-IR.
 
3
Link time optimizations [12, 15] are discussed in more detail in Sect. 5 and Sect. 6.
 
4
While not in LLVM, a prototype for such a pass has been proposed already [8].
 
5
Please see https://​github.​com/​jdoerfert/​PETOSPA for the code and benchmarks.
 
Literatur
24.
Zurück zum Zitat Tate, R., Stepp, M., Lerner, S.: Generating compiler optimizations from proofs. In: Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, Madrid, Spain, 17–23 January 2010, pp. 389–402. ACM (2010), https://doi.org/10.1145/1706299.1706345 Tate, R., Stepp, M., Lerner, S.: Generating compiler optimizations from proofs. In: Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, Madrid, Spain, 17–23 January 2010, pp. 389–402. ACM (2010), https://​doi.​org/​10.​1145/​1706299.​1706345
Metadaten
Titel
Performance Exploration Through Optimistic Static Program Annotations
verfasst von
Johannes Doerfert
Brian Homerding
Hal Finkel
Copyright-Jahr
2019
DOI
https://doi.org/10.1007/978-3-030-20656-7_13

Premium Partner