Skip to content

Evaluate using Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) #3512

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
zamazan4ik opened this issue Dec 3, 2023 · 2 comments
Labels
Feature Request Request for new functionality triaged Issue has been triaged by maintainers

Comments

@zamazan4ik
Copy link

Hi!

I checked Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) improvements on multiple projects. The results are available here. According to the tests, these optimizations can help with achieving better performance in many cases for many applications: compilers and interpreters, static analysis, networking, parsers and serializers/deserializers, other simpler routines, etc. I think optimizing TensorRT (its CPU-heavy part) with PGO and PLO would be a good idea.

I can suggest the following things:

  • Perform PGO benchmarks on TensorRT. If it shows improvements - add a note to the documentation about possible improvements in TensorRT performance with PGO.
  • Providing an easier way (e.g. a build option) to build scripts with PGO can be helpful for the end-users and maintainers since they will be able to optimize TensorRT according to their workloads.
  • Optimize pre-built TensorRT binaries

As an additional optimization step after PGO, I can suggest Post-Link Optimization (PLO) with a tool like LLVM BOLT. I think it's still worth evaluating it only after the PGO integration into TensorRT.

Examples of how PGO optimization is integrated into other projects:

I have some examples of how PGO information looks in the documentation:

Regarding LLVM BOLT integration, I have the following examples:

@lix19937
Copy link

What is the key point?

@zamazan4ik
Copy link
Author

Key point - try to apply Profile-Guided Optimization to the SDK and measure performance difference between PGOed and non-PGOed versions.

@kevinch-nv kevinch-nv added Feature Request Request for new functionality triaged Issue has been triaged by maintainers labels Feb 13, 2025
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Feature Request Request for new functionality triaged Issue has been triaged by maintainers
Projects
None yet
Development

No branches or pull requests

3 participants