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

system image build time regression (after new optimizer and iteration protocol) #23006

Closed
JeffBezanson opened this issue Jul 28, 2017 · 11 comments
Labels
compiler:codegen Generation of LLVM IR and native code compiler:inference Type inference compiler:latency Compiler latency kind:regression Regression in behavior compared to a previous version performance Must go faster

Comments

@JeffBezanson
Copy link
Sponsor Member

For me this takes about 3m10s on v0.6, and 5m30s on master. One theory is that this is due to more inlining and thus generating longer functions (perhaps in just a few pathological cases), but we don't really know yet.

@JeffBezanson JeffBezanson added compiler:codegen Generation of LLVM IR and native code compiler:inference Type inference performance Must go faster kind:regression Regression in behavior compared to a previous version labels Jul 28, 2017
@StefanKarpinski
Copy link
Sponsor Member

This took long enough that I thought it was hung, so yeah, this has definitely regressed. On the other hand, now that #265 is fixed, sysimg build time only really matters to people who build Julia themselves often, so I'm not sure how critical this is.

@timholy
Copy link
Sponsor Member

timholy commented Jul 31, 2017

Inlining is a good theory, but:

Explains some but not a very large fraction of the change.

@maleadt
Copy link
Member

maleadt commented Aug 3, 2017

I'm currently measuring release sysimg build times on an old but idle system of mine, and it just got past df63db6 (the large increase on the chart below):

alt text

Should take ~10 days until it reaches release-0.5.

EDIT: here is a better chart, with commit msg on hover (clicking redirects to the GitHub commit page).

@StefanKarpinski
Copy link
Sponsor Member

We should be tracking and charting this and other performance metrics automatically all the time.

@maleadt
Copy link
Member

maleadt commented Aug 9, 2017

The script reached v0.5.0, with some clear regressions and improvements visible.

Is this a useful thing to have? If so, I can deploy this in a more persistent manner (ie. keeping track of master). Or will @KristofferC's codespeed cover this?

Also, I should have measured real+user+sys & rss+vsz instead of just wall seconds; would that be useful to regenerate the dataset for?

@djsegal
Copy link

djsegal commented Apr 17, 2018

Is there a public-facing dashboard for this kind of stuff?

@JeffBezanson JeffBezanson added the compiler:latency Compiler latency label Jun 12, 2018
@ViralBShah
Copy link
Member

ViralBShah commented Jun 12, 2018

We have now added the new Package Manager and still have the old one, the new broadcasting stuff and many other additions. I assume the goal here is not to reduce sysimage build time as much as improve the compiler speed that everyone can benefit from.

Do we need more specific issues instead?

@JeffBezanson
Copy link
Sponsor Member Author

This is a specific issue --- it's an example case where compiler performance regressed. In fact when the new iteration protocol and optimizer were merged, there was another significant regression in this case. So it's not just caused by adding more code to the system image.

@ViralBShah
Copy link
Member

Ok, I'll see if I can quantify that for discussion here and update the title.

@ViralBShah ViralBShah changed the title system image build time regression system image build time regression (after new optimizer and iteration protocol) Jun 12, 2018
@KristofferC
Copy link
Sponsor Member

Can be closed?

@KristofferC
Copy link
Sponsor Member

I think it is pretty good now (the precompilation script takes a while but that is not really related to this issue).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:codegen Generation of LLVM IR and native code compiler:inference Type inference compiler:latency Compiler latency kind:regression Regression in behavior compared to a previous version performance Must go faster
Projects
None yet
Development

No branches or pull requests

7 participants