Fusing multiple operations into one kernel #5919
ozgrakkurt
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
In general the model of arrow-rs and DataFusion is to favour vectorised dispatch over JIT-based execution. This saves a significant amount of implementation complexity, whilst yielding comparable performance in most cases The discussion on apache/arrow-rs#3708 might be related here. As with any optimisation, I'd suggest getting profiles showing this to be a significant overhead, and go from there. I personally would be surprised to see such low-level operations registering in profiles, compared to the likes of sorts and aggregates. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hey!
Does datafusion already do something like this or was this considered?
For example
arr0+arr1*arr2
can be fused into a single kernel to avoid allocation and which might even end up being vectorized into afmadd
SIMD instruction. Also for something likea && b && c
could be easily fused to avoid intermediary allocation, I guess this might be common in filter operations.Beta Was this translation helpful? Give feedback.
All reactions