Skip to content

Conversation

@weiji14
Copy link
Owner

@weiji14 weiji14 commented Nov 13, 2025

Monitoring the performance of Rust benchmarks (in addition to the current Python ones). Also porting over some of the benchmark improvements from weiji14/foss4g2025#3.

TODO:

  • Update criterion to 0.7.0
  • Setup codspeed benchmarks for Rust
  • Change GDAL benchmark to use LiberTIFF driver
  • Include host to device copy in benchmark timings when 'cuda' flag is enabled

References:

Bumps [criterion](https://github.com/bheisler/criterion.rs) from 0.5.1 to 0.7.0.
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](bheisler/criterion.rs@0.5.1...0.7.0)

No need to use the criterion.rs fork set at f07ae72/#27, because the original error `assertion failed: slice.len() > 1 && slice.iter().all(|x| !x.is_nan())` can been fixed by setting nresamples to 2, yeah I know right!
@weiji14 weiji14 added this to the 0.1.0 milestone Nov 13, 2025
@weiji14 weiji14 self-assigned this Nov 13, 2025
@weiji14 weiji14 force-pushed the multi-lang-bench branch 2 times, most recently from 151a34a to a764ece Compare November 13, 2025 05:29
Use codspeed-criterion-compat crate inplace of criterion, and setup CI job to run the Rust benchmarks!
@weiji14 weiji14 force-pushed the multi-lang-bench branch 2 times, most recently from d404eef to 1a4dc71 Compare November 13, 2025 05:51
And bump to georust/gdal version with GDAL 3.11 bindings.
Fix `failed to update submodule `gdal-src/source` ... Caused by: path too long: 'C:/Users/runneradmin/.cargo/git/checkouts/gdal-3b51095beae5b4fc/3df2c28/gdal-src/source/...`.
Fix `undefined reference to `GDALGetRasterBand'` and various other linker errors. Just rely on existing GDAL installation within the docker container, rather than the pre-built bindings.
Benchmark reading with GDAL 3.11's LiberTIFF driver, using 4 threads. Also renumbered the benchmark IDs to start from 0.
@weiji14 weiji14 marked this pull request as ready for review November 14, 2025 04:20
@weiji14
Copy link
Owner Author

weiji14 commented Nov 14, 2025

Only thing that's not ported over from weiji14/foss4g2025#3 is the LZW compression stuff. Will probably do that in the future, when thinking about more Rust benchmarks (e.g. across a suite of compression types and predictor settings).

@weiji14 weiji14 enabled auto-merge (squash) November 14, 2025 04:22
@weiji14 weiji14 disabled auto-merge November 14, 2025 04:23
Ensure fair comparison between nvTIFF which reads to CUDA memory (even though it's the fastest already), and the GDAL LiberTIFF and image-tiff backend readers.
@weiji14 weiji14 changed the title 👷 Track Rust benchmarks on CI too 👷 Track Rust performance benchmarks on CI Nov 14, 2025
@weiji14 weiji14 enabled auto-merge (squash) November 14, 2025 04:27
@weiji14 weiji14 merged commit f0ac195 into main Nov 14, 2025
20 checks passed
@weiji14 weiji14 deleted the multi-lang-bench branch November 14, 2025 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant