Add bit-packed widening cast pushdown#8059
Conversation
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Merging this PR will improve performance by 71.84%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | chunked_varbinview_opt_canonical_into[(1000, 10)] |
225.2 µs | 188 µs | +19.81% |
| ⚡ | Simulation | cast_execute[(65536, 1, 0.01)] |
526.3 µs | 190.8 µs | ×2.8 |
| ❌ | Simulation | new_alp_prim_test_between[f32, 16384] |
104.3 µs | 118 µs | -11.62% |
| ⚡ | Simulation | cast_execute[(262144, 1, 0.01)] |
1,927 µs | 681.8 µs | ×2.8 |
| ⚡ | Simulation | cast_execute[(65536, 4, 0.0)] |
2.8 ms | 1.8 ms | +58.94% |
| ⚡ | Simulation | cast_execute[(65536, 4, 0.01)] |
2.8 ms | 1.8 ms | +58.12% |
| ⚡ | Simulation | cast_execute[(262144, 1, 0.0)] |
1,897.4 µs | 652.2 µs | ×2.9 |
| ❌ | Simulation | new_alp_prim_test_between[f32, 32768] |
153.6 µs | 181.8 µs | -15.46% |
| ⚡ | Simulation | cast_execute[(65536, 1, 0.0)] |
518.1 µs | 202.3 µs | ×2.6 |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing codex/cast-bitpacked-pushdown-on-benchmark (48a473f) with develop (1a5079b)
…ed-pushdown-on-benchmark Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> # Conflicts: # encodings/fastlanes/benches/cast_bitpacked.rs
Polar Signals Profiling ResultsLatest Run
Previous Runs (3)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 1.006x ➖ datafusion / vortex-file-compressed (1.006x ➖, 1↑ 1↓)
|
File Sizes: PolarSignals ProfilingNo file size changes detected. |
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.002x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.003x ➖, 0↑ 0↓)
datafusion / parquet (1.010x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.986x ➖, 1↑ 0↓)
duckdb / vortex-compact (1.017x ➖, 0↑ 0↓)
duckdb / parquet (1.016x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: FineWeb NVMeNo file size changes detected. |
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.870x ✅, 20↑ 0↓)
datafusion / vortex-compact (0.884x ✅, 15↑ 0↓)
datafusion / parquet (0.898x ✅, 12↑ 1↓)
datafusion / arrow (0.840x ✅, 20↑ 0↓)
duckdb / vortex-file-compressed (0.896x ✅, 12↑ 0↓)
duckdb / vortex-compact (0.908x ➖, 10↑ 0↓)
duckdb / parquet (0.949x ➖, 3↑ 1↓)
duckdb / duckdb (0.934x ➖, 3↑ 0↓)
Full attributed analysis
|
File Sizes: TPC-H SF=1 on NVMENo file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.062x ➖, 0↑ 20↓)
datafusion / vortex-compact (1.061x ➖, 0↑ 13↓)
datafusion / parquet (1.045x ➖, 0↑ 5↓)
duckdb / vortex-file-compressed (1.052x ➖, 0↑ 12↓)
duckdb / vortex-compact (1.057x ➖, 0↑ 15↓)
duckdb / parquet (1.038x ➖, 0↑ 3↓)
duckdb / duckdb (1.048x ➖, 0↑ 9↓)
Full attributed analysis
|
File Sizes: TPC-DS SF=1 on NVMENo file size changes detected. |
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.063x ➖, 0↑ 2↓)
datafusion / vortex-compact (0.992x ➖, 0↑ 0↓)
datafusion / parquet (1.033x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.930x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.954x ➖, 0↑ 0↓)
duckdb / parquet (0.970x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (1.037x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.025x ➖, 0↑ 0↓)
duckdb / parquet (1.027x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: Statistical and Population GeneticsNo file size changes detected. |
|
@claude can you review this PR for design and ensure the usage of the btrblock iterator is consistent |
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.022x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.020x ➖, 0↑ 0↓)
datafusion / parquet (1.022x ➖, 0↑ 0↓)
datafusion / arrow (1.038x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.012x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.018x ➖, 0↑ 0↓)
duckdb / parquet (1.008x ➖, 0↑ 0↓)
duckdb / duckdb (1.005x ➖, 0↑ 0↓)
Full attributed analysis
|
File Sizes: TPC-H SF=10 on NVMENo file size changes detected. |
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (1.011x ➖, 1↑ 1↓)
datafusion / parquet (1.003x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.005x ➖, 0↑ 2↓)
duckdb / parquet (1.001x ➖, 0↑ 0↓)
duckdb / duckdb (0.962x ➖, 5↑ 0↓)
Full attributed analysis
|
File Sizes: Clickbench on NVMEFile Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: Random AccessVortex (geomean): 0.941x ➖ unknown / unknown (0.990x ➖, 8↑ 3↓)
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.224x ➖, 0↑ 7↓)
datafusion / vortex-compact (1.108x ➖, 1↑ 5↓)
datafusion / parquet (1.060x ➖, 0↑ 4↓)
duckdb / vortex-file-compressed (0.964x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.967x ➖, 0↑ 0↓)
duckdb / parquet (0.973x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: CompressionVortex (geomean): 0.998x ➖ unknown / unknown (1.017x ➖, 2↑ 9↓)
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.972x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.975x ➖, 1↑ 1↓)
datafusion / parquet (0.969x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.098x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.164x ➖, 0↑ 3↓)
duckdb / parquet (0.989x ➖, 0↑ 0↓)
Full attributed analysis
|
bad8193 to
56d3c9e
Compare
|
Where do the regressions come from? |
|
updated the desc. |
Summary
CastKernelpath for widening integer casts.Previously the problem with this kernels include: