perf[buffer]: iteration for fallible operations with validity#8120
perf[buffer]: iteration for fallible operations with validity#8120joseph-isaacs wants to merge 22 commits into
Conversation
Merging this PR will improve performance by 23.7%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| 🆕 | Simulation | cast_u32_to_u8[65536] |
N/A | 250.6 µs | N/A |
| 🆕 | Simulation | cast_i32_to_u32[65536] |
N/A | 832.7 µs | N/A |
| 🆕 | Simulation | cast_u16_to_u32[65536] |
N/A | 210.7 µs | N/A |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[128] |
304.4 ns | 246.1 ns | +23.7% |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ji/fast-iter-valid (2c314ab) with develop (126c431)
Footnotes
-
1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports. ↩
4b444dd to
72bca8b
Compare
|
Open question is where to put this code? |
|
Sounds like we want a crate in between the array and vortex-buffer or this could be a feature flag in vortex-buffer |
|
I was thinking I cannot remember if this was a problem before? |
|
there was no problem with vortex-compute iirc. There were some constructs that made it hard in the past but I think we're fine now. |
Currently use (and arrow) handle fallible operations with scalar (non-SIMD) code.
This PR add a trait and methods to have fast SIMD checked operations (includes cast) but verified else where that
checked_addbenefits