CesASMe and Staticdeps: static detection of memory-carried dependencies for code analyzers - CORSE - Computer Optimization and Run-time SystEms
Rapport (Rapport De Recherche) Année : 2024

CesASMe and Staticdeps: static detection of memory-carried dependencies for code analyzers

Résumé

A variety of code analyzers, such as IACA, uiCA, llvm-mca or Ithemal, strive to statically predict the throughput of a computation kernel. Each analyzer is based on its own simplified CPU model reasoning at the scale of a basic block. Facing this diversity, evaluating their strengths and weaknesses is important to guide both their usage and their enhancement. We present CesASMe, a fully-tooled solution to evaluate code analyzers on C-level benchmarks composed of a benchmark derivation procedure that feeds an evaluation harness. We conclude that memory-carried data dependencies are a major source of imprecision for these tools. We tackle this issue with staticdeps, a static analyzer extracting memory-carried data dependencies, including across loop iterations, from an assembly basic block. We integrate its output to uiCA, a state-of-the-art code analyzer, to evaluate staticdeps' impact on a code analyzer's precision through CesASMe.
Fichier principal
Vignette du fichier
2402.14567.pdf (737.75 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
licence

Dates et versions

hal-04477227 , version 1 (26-02-2024)

Licence

Identifiants

Citer

Théophile Bastian, Hugo Pompougnac, Alban Dutilleul, Fabrice Rastello. CesASMe and Staticdeps: static detection of memory-carried dependencies for code analyzers. INRIA. 2024, pp.1-12. ⟨hal-04477227⟩
295 Consultations
35 Téléchargements

Altmetric

Partager

More