firecracker-microvm / firecracker

Secure and fast microVMs for serverless computing.
http://firecracker-microvm.io
Apache License 2.0
26.32k stars 1.83k forks source link

[Feature Request] PGO applicability #3456

Open zamazan4ik opened 1 year ago

zamazan4ik commented 1 year ago

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:

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: https://github.com/vectordotdev/vector/issues/15631

Checks

JonathanWoollett-Light commented 1 year ago

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

zamazan4ik commented 1 year ago

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 commented 1 year ago

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.