Bind expressions before optimization - #9514
Conversation
Merging this PR will degrade performance by 7.04%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | optimize_lookup_predicate[ids=1, shape=balanced_or] |
47 µs | 59.4 µs | -20.91% |
| ❌ | Simulation | optimize_lookup_predicate[ids=64, shape=in_list] |
45.2 µs | 56.1 µs | -19.5% |
| ❌ | Simulation | optimize_lookup_predicate[ids=128, shape=in_list] |
45.4 µs | 56.3 µs | -19.44% |
| ❌ | Simulation | optimize_lookup_predicate[ids=256, shape=in_list] |
46.5 µs | 57.1 µs | -18.57% |
| ❌ | Simulation | optimize_lookup_predicate[ids=192, shape=in_list] |
46.2 µs | 55.9 µs | -17.36% |
| ❌ | Simulation | optimize_lookup_predicate[ids=16, shape=in_list] |
45.5 µs | 54.6 µs | -16.74% |
| ❌ | Simulation | optimize_lookup_predicate[ids=16, shape=balanced_or] |
88.1 µs | 102.9 µs | -14.35% |
| ⚡ | Simulation | optimize_lookup_predicate[ids=1, shape=in_list] |
151.3 µs | 80.3 µs | +88.42% |
| ⚡ | Simulation | compress_fsst[(500, 64, 8)] |
585.9 µs | 524.3 µs | +11.75% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing mk/bound-expression-optimize (c296e37) with develop (46a8d39)
Footnotes
-
442 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. ↩
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
b9734fa to
5e71312
Compare
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Instead of optimizing expressions and then binding, first bind and then optimize.
There are many benefits to this, including:
return_dtypewalks that recurse through the entire expression tree, and we dont need an optimizer-owned dtype cache (SimplifyCache).