KhronosGroup / KhronosGroup/SPIRV-Tools
Try to apply Profile-Guided Optimization (PGO) to SPIRV tooling
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 709
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 28
Description
Hi!
I think SPIRV tools can get performance improvement by using Profile-Guided Optimization (PGO). I think so because, from my experience, compiler-like things get up to a 20% boost with it (according to [Clang](https://llvm.org/docs/HowToBuildWithPGO.html#introduction) and [Rustc](https://blog.rust-lang.org/inside-rust/2020/11/11/exploring-pgo-for-the-rust-compiler.html) tests).
Did anyone try to do such optimization on the project? Not sure, if is it possible or not to use tests as a profile since a good profile should work on a "hot" path in general cases.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by reviewing the SPIRV tooling build and test setup, then compare the proposed use of tests as profiles with the linked Clang and Rustc PGO guidance; done would require a concrete, agreed PGO approach or a documented feasibility conclusion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, performance, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100