Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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] Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT #2399

Closed
2 tasks done
zamazan4ik opened this issue Sep 30, 2023 · 1 comment
Closed
2 tasks done
Labels
C-feature Category: Feature request or enhancement P-medium Priority: Medium S-unassigned Status: This issue has no one assigned to address it

Comments

@zamazan4ik
Copy link

Feature Description

Not a feature - just an idea of how to improve Hyperswitch performance (CPU usage part).

Possible Implementation

Recently I did many Profile-Guided Optimization (PGO) benchmarks on multiple projects (including many network-related projects like Envoy, HAProxy, etc.) - the results are available here. I think it could interesting to try to test PGO for optimizing the CPU part of Hyperswitch.

I can suggest the following things to do:

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

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.

Have you spent some time checking if this feature request has been raised before?

  • I checked and didn't find a similar issue

Have you read the Contributing Guidelines?

Are you willing to submit a PR?

No, I don't have time to work on this right now

@zamazan4ik zamazan4ik added C-feature Category: Feature request or enhancement S-awaiting-triage Status: New issues that have not been assessed yet labels Sep 30, 2023
@zamazan4ik zamazan4ik changed the title [FEATURE] [FEATURE] Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT Sep 30, 2023
@ashokkjag ashokkjag added P-medium Priority: Medium S-unassigned Status: This issue has no one assigned to address it and removed S-awaiting-triage Status: New issues that have not been assessed yet labels Oct 3, 2023
@ashokkjag
Copy link
Contributor

ashokkjag commented Oct 3, 2023

Hi @zamazan4ik , Thanks for the detailed issue with excellent resources for reference.

Since code path execution/profiling will need some external triggers/API calls, I'll leave this unassigned for now until someone can pick up and add it to appropriate CI.

@juspay juspay locked and limited conversation to collaborators Nov 9, 2023
@manojradhakrishnan manojradhakrishnan converted this issue into discussion #2823 Nov 9, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
C-feature Category: Feature request or enhancement P-medium Priority: Medium S-unassigned Status: This issue has no one assigned to address it
Projects
None yet
Development

No branches or pull requests

2 participants