-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
revert breaking change to GC.gc() #34336
Conversation
Definitely good to do this to unbreak CI, but this means there's no longer any way to call GC with the AUTO level where it decides if it wants to do a full or incremental cleaning automatically. Can you elaborate on what code was relying on |
SharedArrays is relying on GC.gc to actually delete the array and run the finalizer. |
Of course, we could also change those to |
All uses of |
Fixes the same CI failure as #34336, but hopefully should be immediately mergeable without objection about what the interface is.
Fixes the same CI failure as #34336, but hopefully should be immediately mergeable without objection about what the interface is.
I guess the question is what people probably want when they explicitly call |
GPU GC. From a resnet50 trace:
So 97% of the time we need to collect GPU memory, an incremental collection is sufficient to free something up. Always doing a full collection (which here is 100x as expensive) would kill performance. |
So I guess the remaining question is when does one want to explicitly invoke a GC that may be incremental or full? |
It does stand to reason that if you're explicitly asking for a GC, it should be of a specific kind. |
Fixes the same CI failure as #34336, but hopefully should be immediately mergeable without objection about what the interface is.
Fixes the same CI failure as JuliaLang/julia#34336, but hopefully should be immediately mergeable without objection about what the interface is.
Removes the breaking part of b0ed147 from PR #34303