Skip to content

Conversation

@a10y
Copy link
Contributor

@a10y a10y commented Feb 9, 2026

This adds a new binary which takes as input a Vortex file with values.

It will recompress the file using only encodings that we implemented on the GPU, scan it back, and collect timings for how long each column scan took. The results are printed as a CSV to stdout, which can be piped into duckdb or similar for analysis

Example usage

$ cargo run --profile release --bin vortex-test-e2e-cuda-scan -- ./vortex-bench/data/tpch/1.0/vortex-file-compressed/lineitem_0.vortex  > trace3.csv
   Compiling vortex-test-e2e-cuda-scan v0.1.0 (/home/ubuntu/vortex/vortex-test/e2e-cuda-scan)
    Finished `release` profile [optimized] target(s) in 6.71s
     Running `target/release/vortex-test-e2e-cuda-scan ./vortex-bench/data/tpch/1.0/vortex-file-compressed/lineitem_0.vortex`

Taking the CSV file and loading it into DuckDB:

image

@a10y a10y force-pushed the aduffy/gpu-scan-measure branch from 0249a54 to a4c923c Compare February 9, 2026 22:51
@a10y a10y marked this pull request as ready for review February 9, 2026 22:51
@a10y a10y added changelog/chore A trivial change changelog/skip Do not list PR in the changelog and removed changelog/chore A trivial change labels Feb 9, 2026
@a10y a10y requested a review from joseph-isaacs February 9, 2026 22:51
Comment on lines +108 to +128
let compressor = BtrBlocksCompressorBuilder::empty()
.include_int([
IntCode::Uncompressed,
IntCode::Constant,
IntCode::BitPacking,
IntCode::For,
IntCode::Sequence,
IntCode::ZigZag,
IntCode::Dict,
])
.include_float([
FloatCode::Uncompressed,
FloatCode::Constant,
FloatCode::Alp,
FloatCode::AlpRd,
FloatCode::RunEnd,
])
// Don't compress strings, this is b/c we don't have any BtrBlocks encodings that support
// strings.
.include_string([StringCode::Uncompressed])
.build();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I @onursatici added something like this?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea @a10y you should be able to just use this for the strategy: https://github.com/vortex-data/vortex/blob/develop/vortex-file/src/strategy.rs#L184

Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@a10y a10y force-pushed the aduffy/gpu-scan-measure branch from a4c923c to 74926d3 Compare February 10, 2026 14:53
a10y added 2 commits February 10, 2026 13:41
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@a10y a10y force-pushed the aduffy/gpu-scan-measure branch 3 times, most recently from fe10865 to e52bb67 Compare February 10, 2026 20:07
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
@a10y a10y force-pushed the aduffy/gpu-scan-measure branch from e52bb67 to 21537a6 Compare February 10, 2026 20:08
a10y added 4 commits February 10, 2026 15:17
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/skip Do not list PR in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants