-
Notifications
You must be signed in to change notification settings - Fork 232
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
Improved GpuArrowEvalPythonExec #783
Conversation
Signed-off-by: Robert (Bobby) Evans <bobby@apache.org>
build |
" when calling cuDF APIs in the UDF, also accelerates the data transfer between the" + | ||
" Java process and Python process", | ||
"The backend of the Scalar Pandas UDFs. Accelerates the data transfer between the" + | ||
" Java process and Python process. It also supports running the Python UDFs code on" + |
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.
This probably needs some work and a reference to how to enable/configure the cudf on GPU feature, but I am nto sure what to say because we are not 100% ready to promote that yet.
sql-plugin/src/main/scala/com/nvidia/spark/rapids/SpillableColumnarBatch.scala
Show resolved
Hide resolved
build |
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.
Found some time to review the rest, looks ok. Just a minor naming nit which isn't must-fix.
* Improved GpuArrowEvalPythonExec Signed-off-by: Robert (Bobby) Evans <bobby@apache.org>
* Improved GpuArrowEvalPythonExec Signed-off-by: Robert (Bobby) Evans <bobby@apache.org>
…IDIA#783) Signed-off-by: spark-rapids automation <70000568+nvauto@users.noreply.github.com> Signed-off-by: spark-rapids automation <70000568+nvauto@users.noreply.github.com>
This gets GpuArrowEvalPythonExec to the point that I think it can be on by default. From my testing with this the performance is either better than the original version (for fast python UDFs) or is as good (for slow UDFs simulated using a sleep) but with much lower CPU utilization so it is likely that that it would end up being faster because there would be less CPU contention.
I did fix one bug in the existing code to make this work. In
SpillableColumnarBatch
if we try to create the batch from an batch ofGpuColumnVectorFromBuffer
I messed up the reference counting and things were being deleted before they should be, which ended up resulting in NullPointerExceptions instead of the double free or other similar error messages that are simpler to debug.