-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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
[core][serialization][cloudpickle] Downstream cloudpickle 3.0.0 changes #42730
Conversation
Signed-off-by: rickyyx <rickyx@anyscale.com>
just copy paste from cloudpickle==3.0.0 files :) |
@suquark could you verify this way of syncing from upstream works? or if there's anything shouldn't be overwritten? |
@rickyyx can you run the microbenchmark to see if there's any perf change? Also, is it possible you make a small benchmark on your own for the serialization performance? (between older impl vs new upstream changes) |
@rkooo567 I think this update should be ok. Besides dataclasses support, it is mostly about:
They are not broken changes for Ray (Ray supports python >= 3.8), so I think it should be ok. Anyway we have to make sure all unittests pass, since a lot of functionality in Ray relies on cloudpickle in a complex way, it's hard to see the effect under the change of so much code. |
Microbecnhmark not showing perf diff:
|
Single Node which puts many/large objects no regresssion
|
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.
@rickyyx so there's no additional code we need to check in? Is it possible we have some sort of README to this page how to do add upstream changes? (Like file X needs to add Y sort of things. If nothing is needed the doc can say it can just bring upstream changes)
sgtm. Although I still don't know why we vendored it in the first place. |
Actually @suquark do you have the context? I thought we vendored it to support pickle 5 when Python version is < 3.8. But I am not 100% sure. Or is there any optimization we add here? |
Signed-off-by: rickyyx <rickyx@anyscale.com>
Why are these changes needed?
cloudpickle has a commit that fixes the incompatibility with dataclasses: cloudpipe/cloudpickle@ab32ba5
Porting the upstream release (3.0.0) into ray's cloud pickle.
Related issue number
Closes #42167
Closes #28838
Closes #25951
Checks
git commit -s
) in this PR.scripts/format.sh
to lint the changes in this PR.method in Tune, I've added it in
doc/source/tune/api/
under thecorresponding
.rst
file.