Files
clawhdf5/crates/clawhdf5-bench/Cargo.toml
T
osobhandClaude Opus 5.5 fc7ae6549a
CI / test-arm64 (pull_request) Successful in 1m19s
CI / test (pull_request) Successful in 5m23s
build: declare Rust 1.92 as the MSRV and check it in CI
rust-version = "1.92" in [workspace.package], inherited by every crate.
1.92 is the floor: wgpu (clawhdf5-gpu) requires it, and the whole
workspace, Python bindings included, checks cleanly on it. ci-test.sh
reads the version from Cargo.toml and checks the workspace on exactly
that toolchain, so the manifests and the README badge cannot drift from
what actually builds. The badge said 1.75, below edition 2024's own
floor.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-23 11:05:26 -05:00

93 lines
2.8 KiB
TOML

[package]
name = "clawhdf5-bench"
version = "2.7.0"
edition = "2024"
rust-version.workspace = true
description = "Benchmark harnesses for clawhdf5-agent (Track 8)"
license = "MIT"
[[bin]]
name = "longmemeval_bench"
path = "src/bin/longmemeval_bench.rs"
[[bin]]
name = "memory_arena"
path = "src/bin/memory_arena.rs"
[[bin]]
name = "read_harness"
path = "src/bin/read_harness.rs"
[[bin]]
name = "search_harness"
path = "src/bin/search_harness.rs"
[[bin]]
name = "footprint_bench"
path = "src/bin/footprint_bench.rs"
[[bin]]
name = "consolidation_efficiency"
path = "src/bin/consolidation_efficiency.rs"
[[bin]]
name = "ephemeral_perf"
path = "src/bin/ephemeral_perf.rs"
[[bin]]
name = "mpi_io_bench"
path = "src/bin/mpi_io_bench.rs"
required-features = ["mpi-io"]
# ---------------------------------------------------------------------------
# h5bench-equivalent Criterion benchmarks
# ---------------------------------------------------------------------------
[[bench]]
name = "h5bench_write"
harness = false
[[bench]]
name = "h5bench_read"
harness = false
[[bench]]
name = "h5bench_meta"
harness = false
[dependencies]
clawhdf5-agent = { path = "../clawhdf5-agent" }
clawhdf5-ann = { path = "../clawhdf5-ann" }
clawhdf5 = { path = "../clawhdf5" }
clawhdf5-format = { path = "../clawhdf5-format" }
clawhdf5-io = { path = "../clawhdf5-io" }
mpi = { version = "0.8", optional = true }
serde = { workspace = true }
serde_json = "1"
tempfile = { workspace = true }
# Optional: libhdf5 C wrapper for side-by-side comparison (requires system libhdf5).
# Enable with: cargo bench -p clawhdf5-bench --features libhdf5-compare
# Uses hdf5-metno (fork of hdf5 crate) which supports HDF5 1.14.x.
hdf5 = { version = "0.12", optional = true, package = "hdf5-metno" }
# Optional: real sentence embeddings for the LongMemEval bench's vector stage.
# Enable with: cargo run --release --bin longmemeval_bench --features embeddings
# Off by default — nothing in the shipped crates depends on these.
candle-core = { version = "0.9", optional = true }
candle-nn = { version = "0.9", optional = true }
candle-transformers = { version = "0.9", optional = true }
tokenizers = { version = "0.21", optional = true }
[dev-dependencies]
clawhdf5 = { path = "../clawhdf5", features = ["zstd", "pcodec"] }
criterion = { workspace = true }
[features]
# When enabled, benchmarks add matching libhdf5 variants for side-by-side comparison.
libhdf5-compare = ["hdf5"]
mpi-io = ["clawhdf5-io/mpi-io", "mpi"]
# Real MiniLM embeddings for longmemeval_bench, so the vector stage is not inert.
embeddings = ["candle-core", "candle-nn", "candle-transformers", "tokenizers"]
# CUDA-accelerated embedding. MiniLM on a CPU takes hours over the full
# longmemeval_s haystack; on a GPU it is minutes.
embeddings-cuda = ["embeddings", "candle-core/cuda", "candle-nn/cuda", "candle-transformers/cuda"]