Saved in:
Bibliographic Details
Main Authors: Ayupov, Amir, Panchenko, Maksim, Pupyrev, Sergey
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2401.17168
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866909088179290112
author Ayupov, Amir
Panchenko, Maksim
Pupyrev, Sergey
author_facet Ayupov, Amir
Panchenko, Maksim
Pupyrev, Sergey
contents Profile-guided optimizations rely on profile data for directing compilers to generate optimized code. To achieve the maximum performance boost, profile data needs to be collected on the same version of the binary that is being optimized. In practice however, there is typically a gap between the profile collection and the release, which makes a portion of the profile invalid for optimizations. This phenomenon is known as profile staleness, and it is a serious practical problem for data-center workloads both for compilers and binary optimizers. In this paper we thoroughly study the staleness problem and propose the first practical solution for utilizing profiles collected on binaries built from several revisions behind the release. Our algorithm is developed and implemented in a mainstream open-source post-link optimizer, BOLT. An extensive evaluation on a variety of standalone benchmarks and production services indicates that the new method recovers up to $0.8$ of the maximum BOLT benefit, even when most of the input profile data is stale and would have been discarded by the optimizer otherwise.
format Preprint
id arxiv_https___arxiv_org_abs_2401_17168
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Stale Profile Matching
Ayupov, Amir
Panchenko, Maksim
Pupyrev, Sergey
Programming Languages
Software Engineering
Profile-guided optimizations rely on profile data for directing compilers to generate optimized code. To achieve the maximum performance boost, profile data needs to be collected on the same version of the binary that is being optimized. In practice however, there is typically a gap between the profile collection and the release, which makes a portion of the profile invalid for optimizations. This phenomenon is known as profile staleness, and it is a serious practical problem for data-center workloads both for compilers and binary optimizers. In this paper we thoroughly study the staleness problem and propose the first practical solution for utilizing profiles collected on binaries built from several revisions behind the release. Our algorithm is developed and implemented in a mainstream open-source post-link optimizer, BOLT. An extensive evaluation on a variety of standalone benchmarks and production services indicates that the new method recovers up to $0.8$ of the maximum BOLT benefit, even when most of the input profile data is stale and would have been discarded by the optimizer otherwise.
title Stale Profile Matching
topic Programming Languages
Software Engineering
url https://arxiv.org/abs/2401.17168