-
-
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 when indexing an 4+ dimensional array #11819
Comments
Incidently, it seems to work well with |
Most likely related to #9622 (see #9622 (comment)). Not sure exactly what commit of Julia you're on, but it sounds like updating may improve the situation a bit, since 6a3c173 improved the situation a bit. |
I tried using latest master, so I do have that commit. |
I can reproduce this on master too. Not sure if there's been a regression since 6a3c173 or if not all the cases are fixed, but I think it's a good idea to leave this issue open until it's fixed. This would be a bad performance regression to leave in the final release. |
Instead of relying upon Julia to do the |
Perhaps |
Aha, I figured it out. This one stems from removing to_index() = ()
to_index(i1, I...) = (to_index(i1), to_index(I...)...) (and also adjusting all the call sites to splat their tuples)… but that hits a stack overflow within femptolisp when computing the primes during bootstrap. |
Ah, of course, those definitions won't work. Amazing how describing the problem helps you see it. |
Recently, after updating Julia some time last week or so, I see serious performance regression on some code using 4-dimensional arrays or more (my orginal application code used 6 dimensional arrays)
The llvm code shows that the
setindex!
isn't statically inlined, rather a dynamic call is done in the innermost loop. No problem on 3 dimensional arrays. I believe this is a different problem than #11787 , as the regression is much bigger (50x than julia 0.3) and only for 4+ dimensional arrays.I don't remember the last verison it worked without slowdown, but it was definitely after the Tuplecalypse.
The text was updated successfully, but these errors were encountered: