@@ -209,21 +209,17 @@ jobs:
209209 matrix :
210210 config :
211211 - name : " all-features"
212- command : " build"
213212 args : " --all-features --all-targets"
214213 - name : " default features"
215- command : " build"
216214 args : " --all-targets"
217215 - name : " with tokio dispatcher"
218- command : " build"
219216 # Only build the crates that have the tokio features, not re-building other crates with no-default-features
220217 args : " --no-default-features --features tokio --all-targets -p vortex -p vortex-io -p vortex-file -p vortex-layout"
221218 - name : " wasm32 with default features"
222- command : " build"
223219 target : wasm32-unknown-unknown
224220 env :
225221 rustflags : " RUSTFLAGS='-A warnings --cfg getrandom_backend=\" wasm_js\" '"
226- args : " --target wasm32-unknown-unknown --exclude vortex --exclude vortex-cuda --exclude vortex-datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd"
222+ args : " --target wasm32-unknown-unknown --exclude vortex --exclude vortex-cuda --exclude vortex-nvcomp --exclude vortex- datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd"
227223 steps :
228224 - uses : runs-on/action@v2
229225 with :
@@ -239,7 +235,7 @@ jobs:
239235 - name : Install cargo-hack
240236 uses : taiki-e/install-action@cargo-hack
241237 - name : Rust Build (${{matrix.config.name}})
242- run : ${{matrix.config.env.rustflags}} cargo hack ${{matrix.config.command}} --locked ${{matrix.config.args}} --ignore-private
238+ run : ${{matrix.config.env.rustflags}} cargo hack build --locked ${{matrix.config.args}} --ignore-private
243239 - name : " Make sure no files changed after build"
244240 run : |
245241 git status --porcelain
@@ -299,19 +295,15 @@ jobs:
299295 run : cargo clippy --locked --all-targets -- -D warnings
300296
301297 rust-lint-no-default :
302- name : " Rust (lint, no default, ${{ matrix.partition }}/2 )"
298+ name : " Rust (lint, no default)"
303299 timeout-minutes : 120
304- strategy :
305- fail-fast : false
306- matrix :
307- partition : [1, 2]
308300 runs-on :
309301 - runs-on=${{ github.run_id }}
310302 - family=m7i+m7i-flex+m7a
311303 - cpu=16
312304 - image=ubuntu24-full-x64
313305 - extras=s3-cache
314- - tag=rust-lint-no-default-${{ matrix.partition }}
306+ - tag=rust-lint-no-default
315307 steps :
316308 - uses : runs-on/action@v2
317309 with :
@@ -326,8 +318,8 @@ jobs:
326318 - name : Rust Lint - Clippy No Default Features
327319 shell : bash
328320 run : |
329- # https://spiraldb.slack.com/archives/C07BV3GKAJ2/p1732736281946729
330- cargo hack clippy --no-default-features --partition ${{ matrix.partition }}/2 -- -D warnings
321+ cargo hack --no-dev-deps --ignore-private clippy --no-default-features -- -D warnings
322+
331323
332324 rust-semver :
333325 name : " Rust (semver checks)"
@@ -495,6 +487,52 @@ jobs:
495487 --target x86_64-unknown-linux-gnu \
496488 -p vortex-buffer -p vortex-ffi -p vortex-fastlanes -p vortex-fsst -p vortex-alp -p vortex-array
497489
490+ cuda-test :
491+ name : " CUDA tests"
492+ timeout-minutes : 120
493+ runs-on :
494+ - runs-on=${{ github.run_id }}
495+ - family=g5+g4dn+g6
496+ - cpu=8
497+ - image=ubuntu24-gpu-x64
498+ - extras=s3-cache
499+ - tag=cuda-tests
500+ env :
501+ # Keep frame pointers for better stack traces
502+ CARGO_PROFILE_DEV_DEBUG : " true"
503+ CARGO_PROFILE_TEST_DEBUG : " true"
504+ steps :
505+ - uses : runs-on/action@v2
506+ with :
507+ sccache : s3
508+ - name : Display NVIDIA SMI details
509+ run : |
510+ nvidia-smi
511+ nvidia-smi -L
512+ nvidia-smi -q -d Memory
513+ - uses : actions/checkout@v6
514+ - uses : ./.github/actions/setup-rust
515+ with :
516+ repo-token : ${{ secrets.GITHUB_TOKEN }}
517+ toolchain : nightly
518+ components : " rust-src, rustfmt, clippy, llvm-tools-preview"
519+ - name : Install nextest
520+ uses : taiki-e/install-action@v2
521+ with :
522+ tool : nextest
523+ - name : Rust Tests
524+ run : |
525+ # Build with full debug info first (helps with caching)
526+ cargo +nightly build --locked -p vortex-cuda --all-features --target x86_64-unknown-linux-gnu
527+ # Run tests with sanitizers and debug output
528+ cargo +nightly nextest run \
529+ --locked \
530+ -p vortex-cuda \
531+ --all-features \
532+ --no-fail-fast \
533+ --target x86_64-unknown-linux-gnu \
534+ --verbose
535+
498536 rust-test-other :
499537 name : " Rust tests (${{ matrix.os }})"
500538 timeout-minutes : 120
@@ -541,7 +579,7 @@ jobs:
541579 - name : Rust Tests (Windows)
542580 if : matrix.os == 'windows-x64'
543581 run : |
544- cargo nextest run --locked --workspace --all-features --no-fail-fast --exclude vortex-bench --exclude vortex-python --exclude vortex-duckdb --exclude vortex-fuzz --exclude duckdb-bench --exclude lance-bench --exclude datafusion-bench --exclude random-access-bench --exclude compress-bench --exclude xtask
582+ cargo nextest run --locked --workspace --all-features --no-fail-fast --exclude vortex-bench --exclude vortex-python --exclude vortex-duckdb --exclude vortex-fuzz --exclude vortex-cuda --exclude vortex-nvcomp --exclude duckdb-bench --exclude lance-bench --exclude datafusion-bench --exclude random-access-bench --exclude compress-bench --exclude xtask
545583 - name : Rust Tests (Other)
546584 if : matrix.os != 'windows-x64'
547585 run : cargo nextest run --locked --workspace --all-features --no-fail-fast --exclude vortex-bench --exclude xtask
@@ -612,6 +650,43 @@ jobs:
612650 token : ${{ secrets.CODSPEED_TOKEN }}
613651 mode : " simulation"
614652
653+ bench-codspeed-gpu :
654+ name : " Benchmark with Codspeed (GPU)"
655+ timeout-minutes : 120
656+ runs-on :
657+ - runs-on=${{ github.run_id }}
658+ - family=g5
659+ - cpu=8
660+ - image=ubuntu24-gpu-x64
661+ - extras=s3-cache
662+ - tag=bench-codspeed-gpu
663+ steps :
664+ - uses : runs-on/action@v2
665+ with :
666+ sccache : s3
667+ - name : Display NVIDIA SMI details
668+ run : |
669+ nvidia-smi
670+ nvidia-smi -L
671+ - uses : actions/checkout@v6
672+ - uses : ./.github/actions/setup-rust
673+ with :
674+ repo-token : ${{ secrets.GITHUB_TOKEN }}
675+ toolchain : nightly
676+ components : " rust-src, rustfmt, clippy, llvm-tools-preview"
677+ - name : Install Codspeed
678+ run : cargo install --force cargo-codspeed --locked
679+ - name : Build benchmarks
680+ run : cargo codspeed -m walltime build -p vortex-cuda --profile bench
681+ - name : Run benchmarks
682+ uses : CodSpeedHQ/action@94b88560ad3ed11ed5e92a321518a47c35a1fed5
683+ env :
684+ CARGO_MANIFEST_DIR : ${{ github.workspace }}/vortex-cuda
685+ with :
686+ run : cargo codspeed run
687+ token : ${{ secrets.CODSPEED_TOKEN }}
688+ mode : " walltime"
689+
615690 license-check-and-audit-check :
616691 name : License Check and Audit Check
617692 runs-on : ubuntu-latest
0 commit comments