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
-
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