Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
don't inline more than a reasonable amount -- our inliner was good en…
- Loading branch information
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did it hang? Surely "enormous" is not "infinite"?
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, looking at the issue I think I see.
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not infinite, but I think it may have been exponential in the number of terms. i think we need have the inliner consider the size of an argument against the number of copies that it is going to make, to decide whether it is better to make a local variable or a copy
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking at the issue, i see you already mentioned that :P
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like this commit may have hurt my Julia FFT performance (in #6193). Non-power-of-two sizes had recently gotten a lot better in performance, but after merging the commits from after April 17 it suddenly got about 50% worse (though not as bad as before). I haven't done a bisect yet, but this is the only commit that looks like it could have made such a difference.
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we need to do better. For now we can probably just increase this threshold.
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can confirm that reverting this commit restores my earlier performance. I'll play with the thresholds to see where the point of diminishing returns occurs.
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems to be sufficient to change the threshold to
100
to restore the old performance:Increasing the threshold further yields no benefit for me.
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add the fft implementation to our benchmarks?
e805fd6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ViralBShah, when it is merged it would probably make a good stress test to check for performance regressions. I'm hoping to have it ready by sometime early in the 0.4 cycle.