[package] name = "clawhdf5-bench" version = "2.1.0" edition = "2024" 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 = "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-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"]