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

Oz with flto performance #310

Closed
Colibrow opened this issue Oct 20, 2023 · 1 comment
Closed

Oz with flto performance #310

Colibrow opened this issue Oct 20, 2023 · 1 comment

Comments

@Colibrow
Copy link

Hi @mtrofin , I've been away from this project for a long time. How about the current model's performance in Oz+flto situation, more specifically in Android with arm architecture?
I recently tried the llvm released model, tested in my demo project with -mllvm,-enable-ml-inliner=release(both in cflags and ldflags) but the output is a little bigger than the one that just added Oz+flto.

@mtrofin
Copy link
Collaborator

mtrofin commented Oct 20, 2023

The current model is the same we published a while ago: trained on x86_64, before any lto. The model is there as reference. Also these models work more based on statistical properties, meaning they learn (during training) which decisions ended up getting a good result, but there is no embedded understanding as to why.

An important role is of the distribution of the values of its features. That is captured during training. If the corpus used at training is representative to your scenario, "stuff works well", if not, less so - basically if things look similar to what it's seen at training, great.

So training your own model should work well for your source code, even as it evolves (unless it drastically changes such that it stops resembling what you trained it on)

Btw, side q, full lto or thinlto? Doesn't change the above, just that we never did full lto (we do thin - there's corpus collection support and everything)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants