Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[Feature Request] PGO applicability #3456

Open
3 tasks done
zamazan4ik opened this issue Feb 16, 2023 · 3 comments
Open
3 tasks done

[Feature Request] PGO applicability #3456

zamazan4ik opened this issue Feb 16, 2023 · 3 comments
Labels
Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` Status: Parked Indicates that an issues or pull request will be revisited later Type: Enhancement Indicates new feature requests

Comments

@zamazan4ik
Copy link

zamazan4ik commented Feb 16, 2023

Feature Request

Profile-Guided Optimization (PGO) allows gaining additional performance for the software since it uses runtime profile information to perform more advanced optimization during the compilation process. Since Firecracker is a large project I guess PGO could help here to gain even more performance.

Describe the desired solution

Possible steps:

  • Prepare firecracker build with PGO and bench it compared to the non-PGO firecracker.
  • At least consider adding PGO to CI. Yes, it has a LOT of caveats like a huge bump in a build time, good profile preparation, profile stability between releases, and much more other stuff but in my opinion, it could be worth it.

Maybe would be a good idea to try to use BOLT too, but FMPOV "usual" PGO is much more stable.

Describe possible alternatives

Just leave things as is.

Additional context

Probably the most helpful link would be this one: vectordotdev/vector#15631

Checks

  • Have you searched the Firecracker Issues database for similar requests?
  • Have you read all the existing relevant Firecracker documentation?
  • Have you read and understood Firecracker's core tenets?
@JonathanWoollett-Light
Copy link
Contributor

Great idea. There are some concerns we have with PGO optimization for specific workloads, but feel free to post a PR on the issue.

@JonathanWoollett-Light JonathanWoollett-Light added Type: Enhancement Indicates new feature requests and removed Performance: Misc labels Mar 23, 2023
@zamazan4ik
Copy link
Author

There are some concerns we have with PGO optimization for specific workloads

Yeah, I understand. I think would be a good idea to start with just a testing PGO approach on some workloads with Firecracker. And then, if the results would be interesting, think about different workloads, their intersection in profiles, etc.

Also, recently I found results of applying PGO on similar projects:

More PGO results on different projects could be found here.

@xmarcalx xmarcalx added the Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` label Aug 21, 2023
@xmarcalx
Copy link
Contributor

Hi @zamazan4ik ,

Thank you very much for your pointer and ideas.
I think it will be interesting to see a prototype of this functionality working so we can really quantify the benefits.
If you or anyway in the community is interested in take this task and showcase the data, it will be amazing and we will may have more datapoint on the best course of actions.

@roypat roypat added the Status: Parked Indicates that an issues or pull request will be revisited later label Aug 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Low Indicates that an issue or pull request should be resolved behind issues or pull requests labelled ` Status: Parked Indicates that an issues or pull request will be revisited later Type: Enhancement Indicates new feature requests
Projects
None yet
Development

No branches or pull requests

4 participants