Add associated outputs to RowFn kernels - #9548
Conversation
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Merging this PR will regress 2 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_varbin_opt_to_varbinview_builder[(10, 100)] |
558.2 µs | 666.6 µs | -16.26% |
| ❌ | Simulation | cold_misaligned[(16, 64)] |
378.6 µs | 429.6 µs | -11.88% |
| ⚡ | Simulation | subtract_shapes[(128, PerRowConstant)] |
90.5 µs | 75.2 µs | +20.38% |
| ⚡ | Simulation | multiply_shapes[(128, PerRowConstant)] |
91.7 µs | 76.6 µs | +19.82% |
| ⚡ | Simulation | add_shapes[(128, PerRowNullableConstant)] |
103.9 µs | 87 µs | +19.44% |
| ⚡ | Simulation | add_shapes[(128, PerRowConstant)] |
90.7 µs | 76 µs | +19.22% |
| ⚡ | Simulation | multiply_shapes[(128, ConstantPerRow)] |
91.9 µs | 77.5 µs | +18.6% |
| ⚡ | Simulation | multiply_shapes[(128, PerRowNullableConstant)] |
105.2 µs | 89.1 µs | +18.17% |
| ⚡ | Simulation | subtract_shapes[(128, ConstantPerRow)] |
90.1 µs | 76.4 µs | +18.04% |
| ⚡ | Simulation | add_shapes[(128, ConstantPerRow)] |
89.8 µs | 76.1 µs | +18.02% |
| ⚡ | Simulation | subtract_shapes[(128, PerRowNullableConstant)] |
102.9 µs | 88.2 µs | +16.74% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ct/row-fn-associated-output (4aa169c) with develop (332ae0b)
Footnotes
-
54 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Progress towards #9128
Adds an infallible
RowKernelinterface with associated output storage, includingVecOutputand packed Boolean output. Existing owned, deferred, andDenseWithRetryexecution paths remain available. The framework validates output length, logical type, and validity at the function boundary.The base layer also retains the exact typed views validated for dense traversal and supports the associated output for valid-only execution.
Verification
cargo clippy -p vortex-array --all-targets --all-features -- -D warningscargo +nightly fmt --all -- --check