VESPA: Static Profiling for Binary Optimization
summary
Claims a static profiler that replaces runtime counters in BOLT and produces measurable speedups by predicting branch probabilities via a regression DNN from code features. It extracts 56 static features then reduces to 26, trains on 243 programs and roughly 500k profile-labeled two‑way branches, converts predicted probabilities to frequencies with Wu and Larus, and optimizes four large benchmarks (clang, GCC, MySQL, PostgreSQL) to yield binaries about 5.50% faster than clang -O3 while still trailing BOLT with full dynamic profiles and improving icache locality.
AI-written summary · about
chapters (15)
- 0:00Intro
- 0:17THE GOAL OF THIS WORK
- 0:48SOFTWARE-BASED BRANCH PREDICTION
- 1:17PREDICTION VS. PROBABILITY VS. FREQUENCY
- 2:10MOTIVATION
- 2:37INFRASTRUCTURE OVERVIEW - STATIC BOLT USAGE!
- 3:17ML PIPELINE OVERVIEW
- 4:12FEATURE MINER
- 4:54AN EXAMPLE
- 5:30PREDICTION OUTPUT
- 5:55GETTING FREQUENCIES OUT OF PROBABILITIES
- 7:27HYPOTHESIS
- 7:49SETUP
- 9:15EXPERIMENTS
- 13:08VESPA IN PRACTICE
related talks
24m(Ab)using Compiler Tools
01h 21mPerformance Really Matters
21mDiagnosing Compiler Performance by Comparing Optimization Decisions
27mImproving Vectorization Heuristics in a Dynamic Compiler with Machine Learning Models
22mBeacons: An End-to-End Compiler Framework for Predicting and Utilizing Dynamic ...
21mGetting the Most Bang out of your Buck with Compilers on POWER
17mRecent Developments in Optimizing Compilers for RISC-V
19mExploiting Undefined Behavior in C/C++ Programs for Optimization: A Study on the(…)
