Skip to content
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

Shim GpuKryoRegistrator #3491

Merged
merged 1 commit into from
Sep 15, 2021
Merged

Shim GpuKryoRegistrator #3491

merged 1 commit into from
Sep 15, 2021

Conversation

tgravescs
Copy link
Collaborator

@tgravescs tgravescs commented Sep 15, 2021

fixes #3468

Add the GpuKryoRegistrator class to common unshimmed code and add the actual registration into the shim. This made more sense to me to add into the shim module since its not create a new instance but just references the class by the spark version shim and I expect this code to be commonized when we commonize the base shim code. If people have strong objections we can rework it but we haven't really put anything into the ShimLoader class like this yet.

I built all versions, tested on all apache versions. We need overrides to test cdh and need to figure out how to test on Databricks.

Signed-off-by: Thomas Graves tgraves@nvidia.com

Signed-off-by: Thomas Graves <tgraves@nvidia.com>
@tgravescs tgravescs added the bug Something isn't working label Sep 15, 2021
@tgravescs tgravescs added this to the Sep 13 - Sep 24 milestone Sep 15, 2021
@tgravescs tgravescs self-assigned this Sep 15, 2021
@tgravescs
Copy link
Collaborator Author

this will need to be upmerged to #3489

@tgravescs
Copy link
Collaborator Author

build

@gerashegalov
Copy link
Collaborator

If it's necessary I am ok with it

in general, we should start biasing much more to not adding to Shims if it's avoidable imo

Did we check if this fix changes anything about running in REPL? #3482 (comment)

GpuKryoRegistrator may be safe to leave in the standard location unless it transitively references some incompatible Scala classes. I think mostly cudf java which is fine and Spark which is fine. GpuKryoRegistrator bytecode is identical across shims:

$ diff -s ./spark311cdh/com/nvidia/spark/rapids/GpuKryoRegistrator.class ./spark302/com/nvidia/spark/rapids/GpuKryoRegistrator.class
Files ./spark311cdh/com/nvidia/spark/rapids/GpuKryoRegistrator.class and ./spark302/com/nvidia/spark/rapids/GpuKryoRegistrator.class are identical

$ diff -s ./spark311cdh/com/nvidia/spark/rapids/GpuKryoRegistrator.class ./spark320/com/nvidia/spark/rapids/GpuKryoRegistrator.class
Files ./spark311cdh/com/nvidia/spark/rapids/GpuKryoRegistrator.class and ./spark320/com/nvidia/spark/rapids/GpuKryoRegistrator.class are identical

@tgravescs
Copy link
Collaborator Author

yes I tested via spark-shell.

@tgravescs tgravescs merged commit fd78b50 into NVIDIA:branch-21.10 Sep 15, 2021
@tgravescs tgravescs deleted the kryonew branch September 15, 2021 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] GpuKryoRegistrator ClassNotFoundException
3 participants