81 lines
2.5 KiB
TOML
81 lines
2.5 KiB
TOML
[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"]
|