Skip to content

Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT #752

Closed
@zamazan4ik

Description

@zamazan4ik

Hi!

Recently I did many Profile-Guided Optimization (PGO) benchmarks on multiple projects (including static analysis tools and compilers like Rustc, Clang, Clangd, Clang Tidy, and many others) - the results are available here. So that's why I think it's worth trying to apply PGO to Qsharp.

I can suggest the following things to do:

  • Evaluate PGO's applicability to Qsharp.
  • If PGO helps to achieve better performance - add a note to Qsharp's documentation about that. In this case, users and maintainers will be aware of another optimization opportunity for Qsharp.
  • Provide PGO integration into the build scripts. It can help users and maintainers easily apply PGO for their own workloads.
  • Optimize prebuilt binaries with PGO.

Here are some examples of how PGO is already integrated into other projects' build scripts:

After PGO, I can suggest evaluating LLVM BOLT as an additional optimization step after PGO.

For the Rust projects, I recommend starting with cargo-pgo.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions