FDO: Magic 'Make My Program Faster' Compilation Option?
summary
Feedback-driven optimisation is real work: instrumentation FDO uses -fprofile-generate / -fprofile-use and can add ~2–3% runtime overhead during training but, on GCC 6.1 with loop unrolling, yields about 23% faster bubble‑sort in the demo; AutoFDO uses Linux perf record -b sampling plus a converter and gives roughly 14% gains with far lower profiling overhead, survives some code changes, and is deployed at Google/Chrome/Chromebook and in Clear Linux — main limits are representative training data and build/process integration.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:15Terminology
- 6:47FDO Manual
- 8:10Limit Instrumentation Based FDO
- 9:29Example Program
- 13:34Swap Optimization
- 14:46Swap Optimization Results
- 17:50Profile Optimization Results
- 21:13Problems with FDO
- 24:20Feedback Directed Optimization
- 33:30Sampling Profile Quality
- 38:54Non Perfect Condition
- 45:08Where is it being used
related talks
29mEmpirical Observations about Profile-Guided Optimizations for Mainstream C/C++ Compilers
14mVESPA: Static Profiling for Binary Optimization
15mNot So Fast: Understanding and Mitigating Negative Impacts of Compiler Optimizations on Code Reuse G
52mDotty Linker: Precise Types Bring Performance
06mProfile-Guided Optimization in the Go Compiler
01h 21mPerformance Really Matters
34mThe basics of Profile-Guided Optimization (PGO) in Rust
19mOptimization-Aware Compiler-Level Event Profiling
