ci(bench): publish benchmark time series to /bench on gh-pages#14
Merged
Conversation
Adds a time-series dashboard at harmoniqs.github.io/CuQuantum.jl/bench/ that coexists with Documenter's existing gh-pages deploy (Documenter only writes /dev, /stable, /vX.Y.Z, /previews). - run_benchmarks.jl emits benchmark/results/bench.json alongside the existing CSV, in github-action-benchmark's customSmallerIsBetter schema. - gpu-benchmark workflow runs benchmark-action/github-action-benchmark after the GPU run. save-data-file and auto-push are gated to push-to-main so PR or branch runs stay out of the published series; those runs still produce a comparison against the recorded baseline and comment if they cross the alert threshold. - benchmarks.md links to the live dashboard.
Closes the M=5-6 "middle regime" gap in the dashboard — per docs this is the best approach in that range. Reuses build_cpu_sparse_system and transfers to CuSparseMatrixCSC (no new deps). Emits as a 4th column in benchmark_results.csv and as a separate "GPU cuSPARSE SpMV L[ρ] M=... D=..." series in bench.json.
Use QT.jl's liouvillian() + QuantumObject * state rather than hand-rolled Kronecker builds + raw mul!. Tracks QT.jl code path so upstream regressions in Liouvillian construction or dispatch appear in the /bench time series. cuDensityMat path unchanged (direct library binding). QT.jl and hand-rolled produce identical Liouvillians (max diff 7e-18). On CPU sparse the * overhead vs raw mul! is ~4% at M=6 — kernel dominates; on GPU cuSPARSE the overhead is more visible at small M where the cuSPARSE kernel itself is small.
- Remove unused SparseArrays and CUDA.CUSPARSE imports (QT.jl cu() handles sparse wrapping internally). - Update file header to list all four tracked backends and both output files. - Fix section numbering after QT.jl refactor (main() was 5, now 4).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gh-pagesbranch — Documenter only writes/dev,/stable,/vX.Y.Z,/previews, so/benchis out of its way.How it works
Follow-ups to consider (separate PRs)
Test plan