DocumentCode :
3582182
Title :
SamplePGO - The Power of Profile Guided Optimizations without the Usability Burden
Author :
Novillo, Diego
Author_Institution :
Google Canada Ltd., Toronto, ON, Canada
fYear :
2014
Firstpage :
22
Lastpage :
28
Abstract :
Profile-guided optimizations (PGO) offer more optimization opportunities that are typically hard to obtain with static heuristics and techniques. In several application domains, significant performance can be gained by using runtime profiles to guide optimization. However, traditional PGO techniques that rely on compiler instrumentation are difficult enough to use that they have not become very popular.This paper describes SamplePGO, an LLVM implementation of a profile-guided technique that addresses the usability problem. Instead of using compiler-generated instrumentation to generate profiles, it relies on profile information gathered by external sampling profilers. These profilers use commonly available hardware counters to inspect the execution of a program.In our experience with large applications in video/image processing, logs processing, web search and ads, we have obtained, in our GCC implementation, performance improvements of up to 30% using SamplePGO over statically optimized code.While the LLVM implementation is fully functional as of LLVM 3.5, not many optimization passes in LLVM make use of profile information. Therefore, the speedups we have been able to obtain using LLVM are much more modest (up to 5% over statically optimized code).
Keywords :
optimisation; program compilers; GCC implementation; LLVM implementation; SamplePGO; Web search; compiler instrumentation; logs processing; profile guided optimizations; static heuristics; usability burden; video/image processing; Hardware; Instruments; Optimization; Performance gain; Radiation detectors; Runtime; Usability;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
LLVM Compiler Infrastructure in HPC (LLVM-HPC), 2014
Type :
conf
DOI :
10.1109/LLVM-HPC.2014.8
Filename :
7069298
Link To Document :
بازگشت