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

Enable Link-Time-Code-Generation for Release builds #5678

Conversation

jkwak-work
Copy link
Collaborator

Closes #5632

This commit enables Link Time Code Generation, or LTCG for short, for the release builds.

Because "incremental" build is enabled, this ends up using "/LTCG:incremental" rather than the full "/LTCG". It is still expected to more performant than without any "/LTCG" at all.

In order to use the full LTCG, we will need to give up the incremental build option for the Release build. We will need to decide if we wants to do it later.

This commit enables Link Time Code Generation, or LTCG for short, for
the release builds.

Because "incremental" build is enabled, this ends up using
"/LTCG:incremental" rather than the full "/LTCG". It is still expected
to more performant than without any "/LTCG" at all.

In order to use the full LTCG, we will need to give up the incremental
build option for the Release build. We will need to decide if we wants
to do it later.
@jkwak-work jkwak-work added the pr: non-breaking PRs without breaking changes label Nov 25, 2024
@jkwak-work jkwak-work self-assigned this Nov 25, 2024
@jkwak-work jkwak-work requested a review from a team as a code owner November 25, 2024 23:25
@CLAassistant
Copy link

CLAassistant commented Nov 25, 2024

CLA assistant check
All committers have signed the CLA.

@zamazan4ik
Copy link

Closes #5632

One note: this PR doesn't close the linked discussion completely - it just closes a part of it regarding enabling LTO. The question about applying PGO and PLO to Slang remains open.

@jkwak-work
Copy link
Collaborator Author

Closes #5632

One note: this PR doesn't close the linked discussion completely - it just closes a part of it regarding enabling LTO. The question about applying PGO and PLO to Slang remains open.

I think that will be tricky to apply unless we can get the profile data from a lot of use cases; or find more representative use cases.

With Profile guided optimization, the performance can shift and bias to only a few use cases if not careful.

@jkwak-work jkwak-work enabled auto-merge (squash) November 26, 2024 05:45
@jkwak-work jkwak-work merged commit cf0e3a6 into shader-slang:master Nov 26, 2024
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr: non-breaking PRs without breaking changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants