You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When developing https://github.com/paleolimbot/duckdb-nanoarrow it was apparent that we need the ability to inject an ArrowBufferAllocator into the ArrowIpcArrayStreamReader for clients that need tight control over memory usage.
There is also at least one place in the device API where we assume a buffer allocator:
In those two examples specifically a lack of custom allocator isn't blocking any real-world case (in DuckDB we can also do a better job coordinating IO if we skip the ArrowIpcArrayStreamReader entirely and go through the lower-level ArrowIpcDecoder; in cudf they have their own code for copying arrays and don't use the device API); however, the option should still be there.
The text was updated successfully, but these errors were encountered:
@vyasr@zeroshade I had some feedback that the new cudf Arrow converter doesn't allow a caller-specified allocator. I know you use this already on the GPU side, but does cudf have an CPU allocator abstraction for this somewhere that you can plug in?
No, not at the moment. Pre-nanoarrow our legacy arrow layer had some internal controls over how memory was allocated, but there was nothing publicly exposed and that didn't make it into the new implementations. As you noted, the new functions do support providing a device allocator in the form of an rmm memory resource. We could certainly consider adding something similar for host allocation if there are use cases.
When developing https://github.com/paleolimbot/duckdb-nanoarrow it was apparent that we need the ability to inject an
ArrowBufferAllocator
into theArrowIpcArrayStreamReader
for clients that need tight control over memory usage.There is also at least one place in the device API where we assume a buffer allocator:
arrow-nanoarrow/src/nanoarrow/nanoarrow_device.h
Lines 220 to 223 in e54b7df
In those two examples specifically a lack of custom allocator isn't blocking any real-world case (in DuckDB we can also do a better job coordinating IO if we skip the
ArrowIpcArrayStreamReader
entirely and go through the lower-levelArrowIpcDecoder
; in cudf they have their own code for copying arrays and don't use the device API); however, the option should still be there.The text was updated successfully, but these errors were encountered: