Fusing multiple operations into one kernel #5919
Closed
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*arr2can be fused into a single kernel to avoid allocation and which might even end up being vectorized into afmaddSIMD instruction. Also for something likea && b && ccould 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