News

SCAF: A Speculation-Aware Collaborative Dependence Analysis Framework

SCAF is an innovative dependence analysis framework that combines in a modular fashion memory analyses and (optionally) speculative assertions.

SCAF reduces the need for expensive-to-validate memory speculation

History of memory dependence handling for automatic parallelization. Percentages are relative to the total number of data flow dependences in hot loops of 14 C/C++ SPEC benchmarks. With SCAF, the expected overall reduction in dependences needing expensive speculation to address is 81%.

trend -27% CAF 2017 3 Cheap Spec. 2007 2 Spec. SCAF 2020 4 -56% -53% Disproven by Memory Analysis 49% Manifested 14% Expensive Speculation 37% Disproven by Memory Analysis 49% Unknown & Unaddressed 51% Disproven by Memory Analysis 49% Manifested 14% Cheap Speculation 21% Expensive Spec. 16% Disproven by Memory Analysis 59% Manifested 14% Cheap Spec. 12% Expensive Spec. 15% Disproven by Memory Analysis 59% Manifested 14% Cheap Spec. 20% Expensive Spec. 7% Approach used by all existing automatic parallelizing compilers Preliminary Result Starting point for the joint analysis and transformation framework 1995 1

SCAF is modular and collaborative

SCAF Design

SCAF Presentation at PLDI 2020 (Slides)

Get Started with SCAF

Authors

Sotiris Apostolakis
Ziyang Xu
Susan Tan
Greg Chan
Simone Campanoni
David I. August