Profile guided optimization (PGO) integration
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 14.4k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
Our buildsystem should support PGO. This is supported by clang and gcc (-fprofile-*) and will lead to a performance improvement. Of course this does not replace sane programming 😉.
This has to be integrated in buildsystem/cpp.cmake and is enabled by a cmake and configure-option.
Profiling procedure:
- Compile the binary with profile generation support
- Execute the binary and do typical actions:
- Run all test cases
- Run demo game
- Use as many codepaths as possible that will be active when actually playing
- Recompile the binary with the profiling information
- This optimizes the branch prediction for real-world use.
Might be interesting what the performance impact will be.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with buildsystem/cpp.cmake and inspect how existing cmake and configure options are defined. Read the linked Clang and GCC PGO documentation, then trace the stated profiling procedure from profile generation through running tests and the demo game to recompilation. Done means the build system exposes the requested option and supports the described PGO workflow for both compilers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100