refactor: propagate bound expressions through layouts - #9126
refactor: propagate bound expressions through layouts#9126joseph-isaacs wants to merge 1 commit into
Conversation
Signed-off-by: Joe Isaacs <[email protected]>
Merging this PR will degrade performance by 48.43%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | extend_from_array_non_zctl_overlapping[(10000, 8)] |
708.9 µs | 2,460.4 µs | -71.19% |
| ❌ | Simulation | extend_from_array_non_zctl_overlapping[(1000, 32)] |
294 µs | 891.2 µs | -67.01% |
| ❌ | Simulation | extend_from_array_zctl[(10000, 8)] |
1.2 ms | 2.2 ms | -45.5% |
| ❌ | Simulation | extend_from_array_zctl[(1000, 64)] |
732.2 µs | 1,199 µs | -38.93% |
| ❌ | Simulation | extend_from_array_non_zctl_overlapping[(1000, 8)] |
297.5 µs | 427.8 µs | -30.47% |
| ❌ | Simulation | extend_from_array_zctl[(1000, 8)] |
341.9 µs | 399.9 µs | -14.49% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ji/bound-expr-stack (1da1017) with ji/bound-expr-foundation (bcb3aea)
Footnotes
-
12 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. ↩
Summary
BoundExpressiondirectly against arrays.LayoutReaderevaluation.Why
Once a scan or layout knows its authoritative root dtype, retaining the bound tree keeps each node's dtype available and avoids repeated recursive type inference.
Impact
This is PR 2 of 2 in the stack and is based on the bound-expression foundation in #9125. Review the foundation PR first; this PR's diff contains only the consumer and layout propagation.
Validation
RUSTC_WRAPPER= cargo nextest run -p vortex-array -p vortex-layout— 3,282 passed, 1 skippedRUSTC_WRAPPER= cargo check -p vortex-file -p vortex-cuda -p vortex-tui -p vortex-compatcargo +nightly fmt --all -- --checkgit diff --check