dotnet / dotnet/source-build

Optimization training data (PGO/IBC) in source-build

Open
#247 5 comments 0 reactions 0 assignees View on GitHub
area-product-experience
Dominant language
No language data
Stars
287
Forks
145
Avg merge
1d 22h
Merged PRs (30d)
10

Description

PGO/IBC optimization training data is used in [CoreCLR](https://github.com/dotnet/coreclr/tree/0e39e2118f2a5bfd7d0c96e2d289e70823d6d1d4/src/.nuget/optdata) and [CoreFX](https://github.com/dotnet/buildtools/blob/9bc085cef38e12857f93a94ba2c9fd1faef4052a/src/Microsoft.DotNet.Build.Tasks/PackageFiles/codeOptimization.targets#L44) (maybe more that I don't know about). There are two issues with using that in source-build:

1. The tooling to generate/use the data isn't buildable from source (not OSS).
2. Optimization data generation requires an existing product.
* This forces the build to be (at least) two-staged: first to generate an unoptimized product so that we can generate the training data, then again to build the product using that training data.
* *This resembles the pre-built binary problem, but I don't think we need to seed the process with anything built beforehand.*

Is it possible to fix (1)?

If we can't accomplish this, what impact does it have on source-build users?

Currently the optimization data packages are dummied out (for the offline build):

https://github.com/dotnet/source-build/blob/a680f3640cbbbb69795874b70370bba18748e186/tools-local/init-build.proj#L149-L152

@dotnet/source-build-contrib

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.