-
Notifications
You must be signed in to change notification settings - Fork 33
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
feat: fuse index runend decoding - take_from
#2527
Conversation
take_from
Benchmarks: TPC-H on NVMETable of Results
|
Benchmarks: TPC-H on S3Table of Results
|
Benchmarks: Clickbench on NVMETable of Results
|
Benchmarks: compressTable of Results
|
7bb6a09
to
226b73f
Compare
2958982
to
b875888
Compare
b875888
to
4d6cfda
Compare
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.
fn take_impl(array: &dyn Array, indices: &dyn Array) -> VortexResult<ArrayRef> {
// First look for a TakeFrom specialized on the indices.
if let Some(take_from_fn) = indices.vtable().take_from_fn() {
if let Some(arr) = take_from_fn.take_from(indices, array)? {
return Ok(arr);
}
}
// If TakeFn defined for the encoding, delegate to TakeFn.
// If we know from stats that indices are all valid, we can avoid all bounds checks.
if let Some(take_fn) = array.vtable().take_fn() {
return take_fn.take(array, indices);
}
```
CodSpeed Performance ReportMerging #2527 will improve performances by 41.79%Comparing Summary
Benchmarks breakdown
|
dca0511
to
153b967
Compare
take_from
take_from
5f3c8bf
to
87a80a5
Compare
|
So this doesn't actually vectorize the take or anything, it just defers the canonicalization? |
It allows for doing a |
develop
:new
: