-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Performance regression from commit a2acf88 #6415
Comments
I think I've got it. We are now pulling more values into temporary variables, the array-valued ones of which are given unnecessary GC roots. The old generated code was able to remove the GC frame entirely. |
A relevant example is |
A workaround for the time being is to make @vtjnash any ideas? Moving
|
the
|
Since all the inlined functions here are trivial (scalar |
yes, as i mentioned, just need replace |
A code for quintic spline interpolation (which I call very often in a compute kernel, so needs to be fast) received a relatively significant (20%) performance regression after commit a2acf88
The code is at: https://gist.github.com/jtravs/9980928
With a2acf88
I get:
elapsed time: 0.006051846 seconds (6616 bytes allocated)
elapsed time: 0.006182501 seconds (48 bytes allocated)
elapsed time: 0.006065417 seconds (48 bytes allocated)
elapsed time: 0.002557683 seconds (48 bytes allocated)
elapsed time: 0.002540566 seconds (48 bytes allocated)
elapsed time: 0.002532169 seconds (48 bytes allocated)
With d19560d
I get:
elapsed time: 0.005068456 seconds (6700 bytes allocated)
elapsed time: 0.004971783 seconds (48 bytes allocated)
elapsed time: 0.00503566 seconds (48 bytes allocated)
elapsed time: 0.002130791 seconds (48 bytes allocated)
elapsed time: 0.002169476 seconds (48 bytes allocated)
elapsed time: 0.002222981 seconds (48 bytes allocated)
Any ideas why? I believe that commit was the inlining stuff.
The text was updated successfully, but these errors were encountered: