memvanta 0.8.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- memvanta-0.8.3/.clang-format +19 -0
- memvanta-0.8.3/.github/CODEOWNERS +7 -0
- memvanta-0.8.3/.github/ISSUE_TEMPLATE/benchmark-reproduction.md +67 -0
- memvanta-0.8.3/.github/dependabot.yml +7 -0
- memvanta-0.8.3/.github/pull_request_template.md +42 -0
- memvanta-0.8.3/.github/scripts/check_social_preview.py +85 -0
- memvanta-0.8.3/.github/workflows/cancel-obsolete-pr-runs.yml +69 -0
- memvanta-0.8.3/.github/workflows/ci.yml +218 -0
- memvanta-0.8.3/.github/workflows/full-model-correctness.yml +238 -0
- memvanta-0.8.3/.github/workflows/issue12-prefetch-matrix.yml +85 -0
- memvanta-0.8.3/.github/workflows/issue12-real-model-baseline.yml +85 -0
- memvanta-0.8.3/.github/workflows/issue12-real-prefetch-ab.yml +96 -0
- memvanta-0.8.3/.github/workflows/medium-model-ab.yml +142 -0
- memvanta-0.8.3/.github/workflows/model-correctness-matrix.yml +240 -0
- memvanta-0.8.3/.github/workflows/oneb-model-ab.yml +218 -0
- memvanta-0.8.3/.github/workflows/pages.yml +65 -0
- memvanta-0.8.3/.github/workflows/pr-benchmark-evidence.yml +117 -0
- memvanta-0.8.3/.github/workflows/publish-benchmark-results.yml +227 -0
- memvanta-0.8.3/.github/workflows/pypi-publish.yml +125 -0
- memvanta-0.8.3/.github/workflows/ram-constrained.yml +196 -0
- memvanta-0.8.3/.github/workflows/real-model-ab.yml +212 -0
- memvanta-0.8.3/.github/workflows/release.yml +186 -0
- memvanta-0.8.3/.github/workflows/sevenb-feasibility.yml +232 -0
- memvanta-0.8.3/.github/workflows/sevenb-ffn-kernel-ab.yml +280 -0
- memvanta-0.8.3/.github/workflows/sevenb-ffn-tuning.yml +184 -0
- memvanta-0.8.3/.github/workflows/sevenb-model-ab.yml +200 -0
- memvanta-0.8.3/.github/workflows/sevenb-ram-constrained.yml +269 -0
- memvanta-0.8.3/.github/workflows/sevenb-throughput-profile.yml +203 -0
- memvanta-0.8.3/.github/workflows/sevenb-weight-prefetch-pressure.yml +195 -0
- memvanta-0.8.3/.github/workflows/threeb-model-ab.yml +279 -0
- memvanta-0.8.3/.github/workflows/throughput-factorial-screen-v2.yml +139 -0
- memvanta-0.8.3/.gitignore +47 -0
- memvanta-0.8.3/BENCHMARKS.md +86 -0
- memvanta-0.8.3/BENCHMARK_MANIFEST.json +125 -0
- memvanta-0.8.3/CITATION.cff +22 -0
- memvanta-0.8.3/CMakeLists.txt +209 -0
- memvanta-0.8.3/CONTRIBUTING.md +49 -0
- memvanta-0.8.3/INDUSTRY_BENCHMARK.md +79 -0
- memvanta-0.8.3/LICENSE +201 -0
- memvanta-0.8.3/PKG-INFO +198 -0
- memvanta-0.8.3/README.md +175 -0
- memvanta-0.8.3/REAL_MODEL_BENCHMARK.md +123 -0
- memvanta-0.8.3/SECURITY.md +21 -0
- memvanta-0.8.3/V04_REAL_MODEL.md +146 -0
- memvanta-0.8.3/V05_BATCHED_PREFILL_BENCHMARK.md +148 -0
- memvanta-0.8.3/V06_GEMM_BENCHMARK.md +95 -0
- memvanta-0.8.3/V071_TOKENIZER_HARDENING.md +88 -0
- memvanta-0.8.3/V072_REAL_MODEL_AB.md +54 -0
- memvanta-0.8.3/V073_PERFORMANCE_HARDENING.md +24 -0
- memvanta-0.8.3/V07_REAL_MODEL_HEADLINE.md +25 -0
- memvanta-0.8.3/benchmarks/auto_tune.cpp +77 -0
- memvanta-0.8.3/benchmarks/eval_bench.cpp +93 -0
- memvanta-0.8.3/benchmarks/issue12_prefetch_matrix.sh +73 -0
- memvanta-0.8.3/benchmarks/issue12_real_model_baseline.sh +68 -0
- memvanta-0.8.3/benchmarks/issue12_real_prefetch_ab.cpp +200 -0
- memvanta-0.8.3/benchmarks/kernel_bench.cpp +150 -0
- memvanta-0.8.3/benchmarks/llama2c_bench.cpp +95 -0
- memvanta-0.8.3/benchmarks/llama_style_bench.cpp +410 -0
- memvanta-0.8.3/benchmarks/llama_style_bench_v04.cpp +363 -0
- memvanta-0.8.3/benchmarks/profile_bench.cpp +208 -0
- memvanta-0.8.3/benchmarks/real_model_bench.cpp +200 -0
- memvanta-0.8.3/benchmarks/streaming_bench.cpp +101 -0
- memvanta-0.8.3/cmake/toolchains/aarch64-linux-gnu.cmake +17 -0
- memvanta-0.8.3/docs/ARCHITECTURE.md +51 -0
- memvanta-0.8.3/docs/BENCHMARK_CHECKLIST.md +25 -0
- memvanta-0.8.3/docs/EXTERNAL_REPRODUCTION.md +44 -0
- memvanta-0.8.3/docs/FULL_MODEL_CORRECTNESS.md +40 -0
- memvanta-0.8.3/docs/MEMORY_BENCHMARKING.md +83 -0
- memvanta-0.8.3/docs/performance/.gitkeep +0 -0
- memvanta-0.8.3/docs/performance/PERSISTENT_DECODE_POOL_EXPERIMENT.md +32 -0
- memvanta-0.8.3/docs/performance/README.md +8 -0
- memvanta-0.8.3/docs/performance/RESEARCH_2025_2026_NOTES.md +76 -0
- memvanta-0.8.3/fuzz/gguf_fuzz.cpp +45 -0
- memvanta-0.8.3/google6f58f6dc503549cc.html +1 -0
- memvanta-0.8.3/include/memvanta/checked_math.hpp +29 -0
- memvanta-0.8.3/include/memvanta/common.hpp +19 -0
- memvanta-0.8.3/include/memvanta/gguf.hpp +131 -0
- memvanta-0.8.3/include/memvanta/gguf_kernels.hpp +67 -0
- memvanta-0.8.3/include/memvanta/llama2.hpp +64 -0
- memvanta-0.8.3/include/memvanta/llama_model.hpp +170 -0
- memvanta-0.8.3/include/memvanta/lru_cache.hpp +52 -0
- memvanta-0.8.3/include/memvanta/matmul.hpp +10 -0
- memvanta-0.8.3/include/memvanta/mmap_file.hpp +40 -0
- memvanta-0.8.3/include/memvanta/prefetch_policy.hpp +55 -0
- memvanta-0.8.3/include/memvanta/prefetcher.hpp +45 -0
- memvanta-0.8.3/include/memvanta/quant.hpp +55 -0
- memvanta-0.8.3/include/memvanta/runtime.hpp +74 -0
- memvanta-0.8.3/include/memvanta/tensor_store.hpp +29 -0
- memvanta-0.8.3/include/memvanta/worker_pool.hpp +41 -0
- memvanta-0.8.3/industry_results.csv +6 -0
- memvanta-0.8.3/pyproject.toml +74 -0
- memvanta-0.8.3/python/memvanta/__init__.py +10 -0
- memvanta-0.8.3/python/memvanta/__main__.py +3 -0
- memvanta-0.8.3/python/memvanta/cli.py +32 -0
- memvanta-0.8.3/python/memvanta/py.typed +0 -0
- memvanta-0.8.3/results/REAL_MODEL_DIAGNOSTIC_2026-08-20.md +41 -0
- memvanta-0.8.3/results/VALIDATION_GATES_2026-08-21.md +49 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454762869/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454762869/diagnostic-summary.json +3 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454996570/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454996570/diagnostic-summary.json +3 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454996570/model-url.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/compatibility-status.txt +4 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/diagnostic-summary.json +3 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/environment.txt +56 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/expected-model.sha256 +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/full-benchmark-status.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/generation-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/generation-smoke.txt +0 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/llama-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/llama-micro.json +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/llama_cpp_commit.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/memvanta-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model-sha-check.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model-size.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model-url.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model.sha256 +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/tokenizer-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/tokenizer-smoke.txt +0 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455906722/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455906722/diagnostic-summary.json +3 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455906722/model-url.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/diagnostic-summary.json +3 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/llama_cpp_commit.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-files.txt +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-metadata.json +5 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-revision.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-size.txt +1 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/SUMMARY.md +17 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-1.csv +450 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-1.txt +39 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-2.csv +450 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-2.txt +39 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-3.csv +450 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-3.txt +39 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/environment.txt +58 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-1.csv +450 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-1.txt +39 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-2.csv +450 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-2.txt +39 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-3.csv +450 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-3.txt +39 -0
- memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/summary.json +168 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/compatibility-status.txt +4 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/diagnostic-summary.json +3 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/environment.txt +53 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/full-benchmark-status.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/generation-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/generation-smoke.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/llama-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/llama-micro.json +90 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/memvanta-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/model-sha-check.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/model-size.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/model.sha256 +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/tokenizer-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/tokenizer-smoke.txt +3 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/SUMMARY.md +11 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/compatibility-status.txt +4 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/environment.txt +60 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/full-benchmark-status.txt +2 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/generation-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/generation-smoke.txt +2 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/gguf-header.json +4 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/llama-bench.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/llama-bench.json +90 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/llama-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/llama-micro.json +90 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/llama_cpp_commit.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta-micro.csv +2 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta.csv +6 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/model-size.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/model.sha256 +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/source-files.txt +8 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/source-metadata.json +5 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/source-revision.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/source-size.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/summary.json +28 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/tokenizer-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-3b-v2-ab/tokenizer-smoke.txt +3 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/SUMMARY.md +11 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/compatibility-status.txt +4 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/environment.txt +59 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/full-benchmark-status.txt +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/generation-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/generation-smoke.txt +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/gguf-header.json +4 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/llama-bench.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/llama-bench.json +90 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/llama-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/llama-micro.json +90 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/llama_cpp_commit.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta-micro.csv +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta.csv +6 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/model-size.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/model-url.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/model.sha256 +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/summary.json +28 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/tokenizer-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ab/tokenizer-smoke.txt +3 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/SUMMARY.md +11 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/compatibility-status.txt +4 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/environment.txt +61 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/full-validation-status.txt +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/generation-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/generation-smoke.txt +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/gguf-header.json +4 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-bench.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-bench.json +90 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-micro.json +90 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama_cpp_commit.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta-micro.csv +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta.csv +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/model-size.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/model-url.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/model.sha256 +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/summary.json +10 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/tokenizer-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-feasibility/tokenizer-smoke.txt +3 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/SUMMARY.md +18 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-1.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-1.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-2.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-2.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-3.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-3.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/environment.txt +55 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-1.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-1.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-2.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-2.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-3.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-3.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/summary.json +170 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/SUMMARY.md +20 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/correctness.diff +0 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/environment.txt +51 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b16.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b16.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b32.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b32.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b64.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b64.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-correctness.txt +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/model.sha256 +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/promotion.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b16.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b16.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b32.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b32.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b64.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b64.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-correctness.txt +2 -0
- memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/results.csv +7 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/SUMMARY.md +11 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/boundaries.env +4 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/environment.txt +64 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/model-sha-check.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/model-size.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/model.sha256 +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/results.csv +30 -0
- memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/summary.json +318 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/SUMMARY.md +16 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/environment.txt +57 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/layer-profile.csv +451 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/model-size.txt +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/model.sha256 +1 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/profile.txt +41 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/summary.json +106 -0
- memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/time.txt +23 -0
- memvanta-0.8.3/results/q4-1b-batchlut-unroll-validation/SUMMARY.md +13 -0
- memvanta-0.8.3/results/q4-1b-batchlut-unroll-validation/summary.json +31 -0
- memvanta-0.8.3/results/q4-24way-structural-screen/SUMMARY.md +33 -0
- memvanta-0.8.3/results/q4-24way-structural-screen/summary.json +368 -0
- memvanta-0.8.3/results/q4-2d-scheduler-screen-v3/SUMMARY.md +30 -0
- memvanta-0.8.3/results/q4-2d-scheduler-screen-v3/summary.json +278 -0
- memvanta-0.8.3/results/q4-360m-top2-validation/SUMMARY.md +12 -0
- memvanta-0.8.3/results/q4-360m-top2-validation/summary.json +49 -0
- memvanta-0.8.3/results/q4-activation-pack-screen/SUMMARY.md +12 -0
- memvanta-0.8.3/results/q4-activation-pack-screen/summary.json +44 -0
- memvanta-0.8.3/results/q4-locality-screen/SUMMARY.md +14 -0
- memvanta-0.8.3/results/q4-locality-screen/summary.json +72 -0
- memvanta-0.8.3/results/q4-lut-medium-ab/SUMMARY.md +13 -0
- memvanta-0.8.3/results/q4-lut-medium-ab/summary.json +31 -0
- memvanta-0.8.3/results/q4-multirow-repeat-validation/SUMMARY.md +9 -0
- memvanta-0.8.3/results/q4-multirow-repeat-validation/summary.json +34 -0
- memvanta-0.8.3/results/q4-multirow-tile-screen/SUMMARY.md +12 -0
- memvanta-0.8.3/results/q4-multirow-tile-screen/summary.json +44 -0
- memvanta-0.8.3/results/q4-nibble-unpack-screen/SUMMARY.md +12 -0
- memvanta-0.8.3/results/q4-nibble-unpack-screen/summary.json +49 -0
- memvanta-0.8.3/results/smollm2-360m/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/smollm2-360m/benchmark-provenance.txt +50 -0
- memvanta-0.8.3/results/smollm2-360m/medium-bench.txt +6 -0
- memvanta-0.8.3/results/smollm2-360m/medium-greedy.txt +2 -0
- memvanta-0.8.3/results/smollm2-360m/medium-model-size.txt +1 -0
- memvanta-0.8.3/results/smollm2-360m/medium-tokenizer.txt +3 -0
- memvanta-0.8.3/results/smollm2-360m-ab/SUMMARY.md +11 -0
- memvanta-0.8.3/results/smollm2-360m-ab/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/smollm2-360m-ab/environment.txt +50 -0
- memvanta-0.8.3/results/smollm2-360m-ab/llama-bench.json +90 -0
- memvanta-0.8.3/results/smollm2-360m-ab/memvanta.csv +6 -0
- memvanta-0.8.3/results/smollm2-360m-ab/summary.json +49 -0
- memvanta-0.8.3/results/stories15m-repeated-ab/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/stories15m-repeated-ab/llama_cpp_commit.txt +1 -0
- memvanta-0.8.3/results/throughput-factorial-screen/SUMMARY.md +25 -0
- memvanta-0.8.3/results/throughput-factorial-screen/environment.txt +52 -0
- memvanta-0.8.3/results/throughput-factorial-screen/summary.json +848 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/SUMMARY.md +11 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/compatibility-status.txt +4 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/environment.txt +53 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/full-benchmark-status.txt +2 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/generation-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/generation-smoke.txt +2 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-bench.exitcode.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-bench.json +90 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-micro.json +90 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta-micro.csv +2 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta-micro.exitcode.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta.csv +6 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta.exitcode.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/model-sha-check.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/model-size.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/model.sha256 +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/summary.json +36 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/tokenizer-smoke.exitcode.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ab/tokenizer-smoke.txt +3 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/SUMMARY.md +10 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/WORKFLOW_RUN.md +8 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/environment.txt +55 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/model-sha-check.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/model-size.txt +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/model.sha256 +1 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/results.csv +21 -0
- memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/summary.json +194 -0
- memvanta-0.8.3/scripts/build_pages.py +82 -0
- memvanta-0.8.3/scripts/check_pages.py +141 -0
- memvanta-0.8.3/scripts/make_llama2_fixture.py +24 -0
- memvanta-0.8.3/scripts/make_smollm2_shape_gguf.py +75 -0
- memvanta-0.8.3/scripts/make_sparse_model.py +5 -0
- memvanta-0.8.3/scripts/make_tiny_gguf.py +65 -0
- memvanta-0.8.3/scripts/make_tokenizer_fixtures.py +56 -0
- memvanta-0.8.3/scripts/run_benchmarks.sh +24 -0
- memvanta-0.8.3/scripts/run_industry_benchmarks.sh +30 -0
- memvanta-0.8.3/scripts/run_real_compare.sh +25 -0
- memvanta-0.8.3/scripts/run_stories15m_ab.sh +113 -0
- memvanta-0.8.3/scripts/run_v04_industry_bench.sh +7 -0
- memvanta-0.8.3/scripts/run_v04_real_parity.sh +30 -0
- memvanta-0.8.3/scripts/run_v071_validation.sh +15 -0
- memvanta-0.8.3/scripts/run_v07_headline.sh +27 -0
- memvanta-0.8.3/scripts/summarize_ab.py +129 -0
- memvanta-0.8.3/scripts/sync_headline_benchmark.py +91 -0
- memvanta-0.8.3/site/architecture/index.template.html +83 -0
- memvanta-0.8.3/site/benchmark/index.template.html +83 -0
- memvanta-0.8.3/site/favicon.svg +4 -0
- memvanta-0.8.3/site/getting-started/index.template.html +99 -0
- memvanta-0.8.3/site/index.template.html +150 -0
- memvanta-0.8.3/site/llms.txt +23 -0
- memvanta-0.8.3/site/low-memory-llm-inference/index.template.html +80 -0
- memvanta-0.8.3/site/reproduce/index.template.html +97 -0
- memvanta-0.8.3/site/robots.txt +4 -0
- memvanta-0.8.3/site/sitemap.xml +39 -0
- memvanta-0.8.3/site/social-card.png +0 -0
- memvanta-0.8.3/site/styles.css +41 -0
- memvanta-0.8.3/src/common.cpp +33 -0
- memvanta-0.8.3/src/gguf.cpp +501 -0
- memvanta-0.8.3/src/gguf_kernels.cpp +1026 -0
- memvanta-0.8.3/src/llama2.cpp +315 -0
- memvanta-0.8.3/src/llama_model.cpp +1214 -0
- memvanta-0.8.3/src/lru_cache.cpp +109 -0
- memvanta-0.8.3/src/main.cpp +81 -0
- memvanta-0.8.3/src/matmul.cpp +39 -0
- memvanta-0.8.3/src/mmap_file.cpp +117 -0
- memvanta-0.8.3/src/prefetch_policy.cpp +129 -0
- memvanta-0.8.3/src/prefetcher.cpp +133 -0
- memvanta-0.8.3/src/quant.cpp +207 -0
- memvanta-0.8.3/src/quant_kernels.cpp +115 -0
- memvanta-0.8.3/src/real_main.cpp +60 -0
- memvanta-0.8.3/src/runtime.cpp +270 -0
- memvanta-0.8.3/src/tensor_store.cpp +30 -0
- memvanta-0.8.3/src/worker_pool.cpp +85 -0
- memvanta-0.8.3/tests/BENCHMARK_EVIDENCE_POLICY.md +15 -0
- memvanta-0.8.3/tests/check.hpp +62 -0
- memvanta-0.8.3/tests/concurrency_stress_tests.cpp +102 -0
- memvanta-0.8.3/tests/fp16_tests.cpp +55 -0
- memvanta-0.8.3/tests/gguf_limits_tests.cpp +103 -0
- memvanta-0.8.3/tests/isa_compile_tests.cpp +19 -0
- memvanta-0.8.3/tests/prefetch_policy_tests.cpp +137 -0
- memvanta-0.8.3/tests/reference/stories15m-greedy.txt +1 -0
- memvanta-0.8.3/tests/tests.cpp +320 -0
- memvanta-0.8.3/tests/tokenizer_tests.cpp +93 -0
- memvanta-0.8.3/tokenizer_fixtures/sp_fixture.model +0 -0
- memvanta-0.8.3/tokenizer_fixtures/sp_fixture.txt +11 -0
- memvanta-0.8.3/tokenizer_fixtures/sp_fixture.vocab +358 -0
- memvanta-0.8.3/tools_gguf_inspect.cpp +55 -0
- memvanta-0.8.3/tools_tokenize.cpp +63 -0
- memvanta-0.8.3/v04_benchmark_manifest.json +19 -0
- memvanta-0.8.3/v04_shape_benchmark_results.csv +6 -0
- memvanta-0.8.3/v04_smoke_compare.csv +3 -0
- memvanta-0.8.3/v05_industry_results.csv +11 -0
- memvanta-0.8.3/v05_smoke.csv +2 -0
- memvanta-0.8.3/v05_smoke_real.csv +3 -0
- memvanta-0.8.3/v06_apples_v05_primary.csv +6 -0
- memvanta-0.8.3/v06_auto_tune.csv +21 -0
- memvanta-0.8.3/v06_auto_tune.stderr +2 -0
- memvanta-0.8.3/v06_auto_tune_512.csv +0 -0
- memvanta-0.8.3/v06_auto_tune_512.stderr +0 -0
- memvanta-0.8.3/v06_industry_results.csv +6 -0
- memvanta-0.8.3/v06_runs.txt +29 -0
- memvanta-0.8.3/v071_ctest.txt +10 -0
- memvanta-0.8.3/v071_shape_industry.time +0 -0
- memvanta-0.8.3/v071_shape_industry.txt +0 -0
- memvanta-0.8.3/v072_ctest.txt +10 -0
- memvanta-0.8.3/v072_memvanta_ctest.txt +10 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
BasedOnStyle: LLVM
|
|
2
|
+
Language: Cpp
|
|
3
|
+
Standard: c++20
|
|
4
|
+
IndentWidth: 4
|
|
5
|
+
ContinuationIndentWidth: 4
|
|
6
|
+
ColumnLimit: 100
|
|
7
|
+
BreakBeforeBraces: Attach
|
|
8
|
+
AllowShortFunctionsOnASingleLine: Inline
|
|
9
|
+
AllowShortIfStatementsOnASingleLine: Never
|
|
10
|
+
AllowShortLoopsOnASingleLine: false
|
|
11
|
+
AllowShortBlocksOnASingleLine: Never
|
|
12
|
+
BinPackArguments: false
|
|
13
|
+
BinPackParameters: false
|
|
14
|
+
DerivePointerAlignment: false
|
|
15
|
+
PointerAlignment: Left
|
|
16
|
+
SortIncludes: CaseSensitive
|
|
17
|
+
IncludeBlocks: Regroup
|
|
18
|
+
NamespaceIndentation: None
|
|
19
|
+
FixNamespaceComments: true
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Benchmark reproduction
|
|
3
|
+
description: Report an independent MemVanta memory benchmark reproduction
|
|
4
|
+
title: "[reproduction] "
|
|
5
|
+
labels: []
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Result summary
|
|
10
|
+
|
|
11
|
+
Briefly state whether your result confirms, narrows, or contradicts a published MemVanta memory result.
|
|
12
|
+
|
|
13
|
+
## Hardware and operating system
|
|
14
|
+
|
|
15
|
+
- CPU:
|
|
16
|
+
- Physical cores / logical CPUs:
|
|
17
|
+
- Total RAM:
|
|
18
|
+
- Operating system:
|
|
19
|
+
- Kernel:
|
|
20
|
+
- Swap state:
|
|
21
|
+
|
|
22
|
+
## Builds
|
|
23
|
+
|
|
24
|
+
- MemVanta commit SHA:
|
|
25
|
+
- Compiler and version:
|
|
26
|
+
- Build flags/type:
|
|
27
|
+
- Comparison runtime and commit SHA:
|
|
28
|
+
- Comparison runtime build flags/type:
|
|
29
|
+
|
|
30
|
+
## Model
|
|
31
|
+
|
|
32
|
+
- Model name:
|
|
33
|
+
- GGUF filename:
|
|
34
|
+
- Quantization:
|
|
35
|
+
- File size:
|
|
36
|
+
- SHA-256:
|
|
37
|
+
|
|
38
|
+
## Workload
|
|
39
|
+
|
|
40
|
+
- Threads:
|
|
41
|
+
- Context size:
|
|
42
|
+
- Batch size:
|
|
43
|
+
- KV-cache format:
|
|
44
|
+
- Prompt tokens:
|
|
45
|
+
- Generated tokens:
|
|
46
|
+
- Warm-up runs:
|
|
47
|
+
- Measured runs:
|
|
48
|
+
|
|
49
|
+
## Peak-RSS results
|
|
50
|
+
|
|
51
|
+
Include every measured run and the aggregate statistics. Attach or link raw output when possible.
|
|
52
|
+
|
|
53
|
+
## Constrained-memory results
|
|
54
|
+
|
|
55
|
+
If tested, list each cgroup-v2 `MemoryMax` ceiling and whether MemVanta and the comparison runtime completed or were OOM-killed. Confirm whether swap was disabled.
|
|
56
|
+
|
|
57
|
+
## Throughput
|
|
58
|
+
|
|
59
|
+
Report prompt-processing and token-generation throughput for transparency even when memory, rather than speed, is the focus.
|
|
60
|
+
|
|
61
|
+
## Commands and raw evidence
|
|
62
|
+
|
|
63
|
+
Paste exact commands or provide a repository/link containing the raw logs and machine-readable summary.
|
|
64
|
+
|
|
65
|
+
## Deviations from the reference protocol
|
|
66
|
+
|
|
67
|
+
Describe anything that differs from `docs/MEMORY_BENCHMARKING.md`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
Describe the change and why it is needed.
|
|
4
|
+
|
|
5
|
+
## Change type
|
|
6
|
+
|
|
7
|
+
- [ ] Runtime/code change
|
|
8
|
+
- [ ] Benchmark/reproducibility change
|
|
9
|
+
- [ ] Documentation only
|
|
10
|
+
- [ ] CI/build change
|
|
11
|
+
|
|
12
|
+
## Validation
|
|
13
|
+
|
|
14
|
+
- [ ] Release build succeeds
|
|
15
|
+
- [ ] `ctest` passes
|
|
16
|
+
- [ ] Existing deterministic correctness checks pass
|
|
17
|
+
- [ ] No benchmark number was changed without raw evidence
|
|
18
|
+
|
|
19
|
+
## Performance / memory evidence
|
|
20
|
+
|
|
21
|
+
If this PR changes runtime behavior, include before/after measurements using the same model, workload, threads, context, batch and KV-cache settings.
|
|
22
|
+
|
|
23
|
+
- Peak RSS before:
|
|
24
|
+
- Peak RSS after:
|
|
25
|
+
- Prompt-processing throughput before/after:
|
|
26
|
+
- Token-generation throughput before/after:
|
|
27
|
+
- Model SHA-256:
|
|
28
|
+
- MemVanta base/head commit SHAs:
|
|
29
|
+
- Comparison-runtime commit SHA, if applicable:
|
|
30
|
+
|
|
31
|
+
Attach or link raw outputs. Follow `docs/MEMORY_BENCHMARKING.md` and `docs/BENCHMARK_CHECKLIST.md` for publishable claims.
|
|
32
|
+
|
|
33
|
+
## Claim discipline
|
|
34
|
+
|
|
35
|
+
- [ ] Any memory claim is scoped to the tested model/workload/hardware
|
|
36
|
+
- [ ] Throughput is reported transparently alongside memory results
|
|
37
|
+
- [ ] Lowest successful cgroup ceiling is described as a tested boundary, not an exact RAM requirement
|
|
38
|
+
- [ ] Contradictory or failed runs are retained and explained
|
|
39
|
+
|
|
40
|
+
## Reviewer notes
|
|
41
|
+
|
|
42
|
+
Call out anything that deserves extra scrutiny, especially benchmark methodology, correctness, numerical tolerance, or changes to `results/` and benchmark workflows.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
import struct
|
|
5
|
+
import sys
|
|
6
|
+
from html.parser import HTMLParser
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
EXPECTED_IMAGE = "https://sauravsingla.github.io/MemVanta/social-card.png"
|
|
10
|
+
EXPECTED_WIDTH = "1200"
|
|
11
|
+
EXPECTED_HEIGHT = "630"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SocialParser(HTMLParser):
|
|
15
|
+
def __init__(self) -> None:
|
|
16
|
+
super().__init__()
|
|
17
|
+
self.meta: dict[tuple[str, str], str] = {}
|
|
18
|
+
|
|
19
|
+
def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None:
|
|
20
|
+
if tag != "meta":
|
|
21
|
+
return
|
|
22
|
+
values = dict(attrs)
|
|
23
|
+
content = values.get("content")
|
|
24
|
+
if content is None:
|
|
25
|
+
return
|
|
26
|
+
if values.get("property"):
|
|
27
|
+
self.meta[("property", values["property"] or "")] = content
|
|
28
|
+
if values.get("name"):
|
|
29
|
+
self.meta[("name", values["name"] or "")] = content
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def check_png(path: Path, errors: list[str]) -> None:
|
|
33
|
+
if not path.exists():
|
|
34
|
+
errors.append(f"missing social preview image: {path}")
|
|
35
|
+
return
|
|
36
|
+
data = path.read_bytes()
|
|
37
|
+
if len(data) < 24 or data[:8] != b"\x89PNG\r\n\x1a\n":
|
|
38
|
+
errors.append(f"social preview is not a valid PNG: {path}")
|
|
39
|
+
return
|
|
40
|
+
width, height = struct.unpack(">II", data[16:24])
|
|
41
|
+
if (width, height) != (1200, 630):
|
|
42
|
+
errors.append(f"social preview must be 1200x630, found {width}x{height}")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def main() -> None:
|
|
46
|
+
out = Path(sys.argv[1] if len(sys.argv) > 1 else "_site")
|
|
47
|
+
errors: list[str] = []
|
|
48
|
+
check_png(out / "social-card.png", errors)
|
|
49
|
+
|
|
50
|
+
pages = sorted(out.rglob("index.html"))
|
|
51
|
+
if not pages:
|
|
52
|
+
errors.append("no generated HTML pages found")
|
|
53
|
+
|
|
54
|
+
for page in pages:
|
|
55
|
+
parser = SocialParser()
|
|
56
|
+
parser.feed(page.read_text(encoding="utf-8"))
|
|
57
|
+
meta = parser.meta
|
|
58
|
+
|
|
59
|
+
required = {
|
|
60
|
+
("property", "og:image"): EXPECTED_IMAGE,
|
|
61
|
+
("property", "og:image:type"): "image/png",
|
|
62
|
+
("property", "og:image:width"): EXPECTED_WIDTH,
|
|
63
|
+
("property", "og:image:height"): EXPECTED_HEIGHT,
|
|
64
|
+
("name", "twitter:card"): "summary_large_image",
|
|
65
|
+
("name", "twitter:image"): EXPECTED_IMAGE,
|
|
66
|
+
}
|
|
67
|
+
for key, expected in required.items():
|
|
68
|
+
actual = meta.get(key)
|
|
69
|
+
if actual != expected:
|
|
70
|
+
errors.append(f"{page}: {key[1]} is {actual!r}, expected {expected!r}")
|
|
71
|
+
|
|
72
|
+
for key in (("property", "og:image:alt"), ("name", "twitter:image:alt")):
|
|
73
|
+
if not meta.get(key, "").strip():
|
|
74
|
+
errors.append(f"{page}: missing {key[1]}")
|
|
75
|
+
|
|
76
|
+
if errors:
|
|
77
|
+
for error in errors:
|
|
78
|
+
print(f"ERROR: {error}")
|
|
79
|
+
raise SystemExit(1)
|
|
80
|
+
|
|
81
|
+
print(f"Validated large social previews on {len(pages)} generated pages.")
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
if __name__ == "__main__":
|
|
85
|
+
main()
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: Cancel Obsolete PR Runs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main]
|
|
6
|
+
types: [opened, reopened, synchronize]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
actions: write
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
# This workflow is intentionally the only central cancellation hook. It avoids
|
|
13
|
+
# copying concurrency blocks into every benchmark workflow while preserving all
|
|
14
|
+
# current-head evidence and every non-PR/push run.
|
|
15
|
+
concurrency:
|
|
16
|
+
group: cancel-obsolete-pr-runs-${{ github.event.pull_request.number }}
|
|
17
|
+
cancel-in-progress: true
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
cancel-obsolete:
|
|
21
|
+
if: github.event.pull_request.head.repo.full_name == github.repository
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
timeout-minutes: 5
|
|
24
|
+
steps:
|
|
25
|
+
- name: Cancel queued or running jobs from older commits on this PR branch
|
|
26
|
+
uses: actions/github-script@v7
|
|
27
|
+
with:
|
|
28
|
+
script: |
|
|
29
|
+
const owner = context.repo.owner;
|
|
30
|
+
const repo = context.repo.repo;
|
|
31
|
+
const branch = context.payload.pull_request.head.ref;
|
|
32
|
+
const currentSha = context.payload.pull_request.head.sha;
|
|
33
|
+
const currentRunId = context.runId;
|
|
34
|
+
const statuses = new Set(['queued', 'in_progress', 'waiting', 'requested', 'pending']);
|
|
35
|
+
let cancelled = 0;
|
|
36
|
+
|
|
37
|
+
for (let page = 1; page <= 10; page++) {
|
|
38
|
+
const { data } = await github.rest.actions.listWorkflowRunsForRepo({
|
|
39
|
+
owner,
|
|
40
|
+
repo,
|
|
41
|
+
branch,
|
|
42
|
+
event: 'pull_request',
|
|
43
|
+
per_page: 100,
|
|
44
|
+
page,
|
|
45
|
+
});
|
|
46
|
+
if (data.workflow_runs.length === 0) break;
|
|
47
|
+
|
|
48
|
+
for (const run of data.workflow_runs) {
|
|
49
|
+
if (run.id === currentRunId || run.head_sha === currentSha) continue;
|
|
50
|
+
if (!statuses.has(run.status)) continue;
|
|
51
|
+
core.info(`Cancelling stale run ${run.id} (${run.name}) at ${run.head_sha}`);
|
|
52
|
+
try {
|
|
53
|
+
await github.rest.actions.cancelWorkflowRun({ owner, repo, run_id: run.id });
|
|
54
|
+
cancelled++;
|
|
55
|
+
} catch (error) {
|
|
56
|
+
// A run may finish between listing and cancellation. Only ignore
|
|
57
|
+
// that normal race; surface permission/API failures.
|
|
58
|
+
if (error.status === 409) {
|
|
59
|
+
core.info(`Run ${run.id} already completed while cancelling`);
|
|
60
|
+
} else {
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (data.workflow_runs.length < 100) break;
|
|
66
|
+
}
|
|
67
|
+
core.summary.addHeading('Obsolete PR run cleanup');
|
|
68
|
+
core.summary.addRaw(`Cancelled ${cancelled} stale queued/running run(s) for ${branch}.`);
|
|
69
|
+
await core.summary.write();
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
name: Build and Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
linux:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
timeout-minutes: 20
|
|
17
|
+
|
|
18
|
+
strategy:
|
|
19
|
+
fail-fast: false
|
|
20
|
+
matrix:
|
|
21
|
+
build_type: [Release, Debug]
|
|
22
|
+
|
|
23
|
+
name: linux-${{ matrix.build_type }}
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout
|
|
27
|
+
uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Verify canonical README benchmark
|
|
30
|
+
if: matrix.build_type == 'Release'
|
|
31
|
+
run: python3 scripts/sync_headline_benchmark.py --check
|
|
32
|
+
|
|
33
|
+
- name: Install dependencies
|
|
34
|
+
run: |
|
|
35
|
+
sudo apt-get update
|
|
36
|
+
sudo apt-get install -y build-essential cmake ninja-build clang-format
|
|
37
|
+
|
|
38
|
+
- name: Enforce clang-format across C++ tree
|
|
39
|
+
if: matrix.build_type == 'Release'
|
|
40
|
+
run: |
|
|
41
|
+
find src include tests benchmarks -type f \( -name '*.cpp' -o -name '*.hpp' \) -print0 \
|
|
42
|
+
| xargs -0 clang-format --dry-run --Werror
|
|
43
|
+
clang-format --dry-run --Werror tools_gguf_inspect.cpp tools_tokenize.cpp
|
|
44
|
+
|
|
45
|
+
- name: Configure
|
|
46
|
+
run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
47
|
+
|
|
48
|
+
- name: Build
|
|
49
|
+
run: cmake --build build -j "$(nproc)"
|
|
50
|
+
|
|
51
|
+
- name: Test
|
|
52
|
+
run: ctest --test-dir build --output-on-failure
|
|
53
|
+
|
|
54
|
+
portable-linux:
|
|
55
|
+
name: linux-Release-portable-runtime-dispatch
|
|
56
|
+
runs-on: ubuntu-latest
|
|
57
|
+
timeout-minutes: 20
|
|
58
|
+
|
|
59
|
+
steps:
|
|
60
|
+
- name: Checkout
|
|
61
|
+
uses: actions/checkout@v4
|
|
62
|
+
|
|
63
|
+
- name: Install dependencies
|
|
64
|
+
run: |
|
|
65
|
+
sudo apt-get update
|
|
66
|
+
sudo apt-get install -y build-essential cmake ninja-build
|
|
67
|
+
|
|
68
|
+
- name: Configure without -march=native
|
|
69
|
+
run: >-
|
|
70
|
+
cmake -S . -B build-portable -G Ninja
|
|
71
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
72
|
+
-DMEMVANTA_NATIVE=OFF
|
|
73
|
+
|
|
74
|
+
- name: Build portable binary
|
|
75
|
+
run: cmake --build build-portable -j "$(nproc)"
|
|
76
|
+
|
|
77
|
+
- name: Test portable runtime-dispatch build
|
|
78
|
+
run: ctest --test-dir build-portable --output-on-failure
|
|
79
|
+
|
|
80
|
+
- name: Verify installable runtime layout
|
|
81
|
+
shell: bash
|
|
82
|
+
run: |
|
|
83
|
+
set -euo pipefail
|
|
84
|
+
prefix="${PWD}/install-root"
|
|
85
|
+
cmake --install build-portable --prefix "${prefix}"
|
|
86
|
+
test -x "${prefix}/bin/memvanta"
|
|
87
|
+
test -x "${prefix}/bin/memvanta_real"
|
|
88
|
+
test -x "${prefix}/bin/memvanta_tokenize"
|
|
89
|
+
test -x "${prefix}/bin/memvanta_gguf_inspect"
|
|
90
|
+
test -f "${prefix}/share/doc/memvanta_cpu/README.md"
|
|
91
|
+
test -f "${prefix}/share/doc/memvanta_cpu/LICENSE"
|
|
92
|
+
test -f "${prefix}/share/doc/memvanta_cpu/CITATION.cff"
|
|
93
|
+
|
|
94
|
+
arm64-qemu:
|
|
95
|
+
name: arm64-Release-NEON-capable-cross
|
|
96
|
+
runs-on: ubuntu-latest
|
|
97
|
+
timeout-minutes: 30
|
|
98
|
+
|
|
99
|
+
steps:
|
|
100
|
+
- name: Checkout
|
|
101
|
+
uses: actions/checkout@v4
|
|
102
|
+
|
|
103
|
+
- name: Install ARM64 toolchain and emulator
|
|
104
|
+
run: |
|
|
105
|
+
sudo apt-get update
|
|
106
|
+
sudo apt-get install -y \
|
|
107
|
+
cmake ninja-build qemu-user \
|
|
108
|
+
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
|
|
109
|
+
|
|
110
|
+
- name: Configure ARMv8 SIMD build
|
|
111
|
+
run: >-
|
|
112
|
+
cmake -S . -B build-arm64 -G Ninja
|
|
113
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
114
|
+
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/aarch64-linux-gnu.cmake
|
|
115
|
+
-DCMAKE_CXX_FLAGS="-march=armv8-a+simd"
|
|
116
|
+
-DMEMVANTA_NATIVE=OFF
|
|
117
|
+
-DMEMVANTA_ENABLE_IPO=OFF
|
|
118
|
+
-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE
|
|
119
|
+
|
|
120
|
+
- name: Build ARM64 targets
|
|
121
|
+
run: cmake --build build-arm64 -j "$(nproc)"
|
|
122
|
+
|
|
123
|
+
- name: Run portable correctness tests under QEMU
|
|
124
|
+
run: >-
|
|
125
|
+
ctest --test-dir build-arm64 --output-on-failure
|
|
126
|
+
-E memvanta_concurrency_stress_tests
|
|
127
|
+
|
|
128
|
+
sanitizers:
|
|
129
|
+
name: clang-ASan-UBSan
|
|
130
|
+
runs-on: ubuntu-latest
|
|
131
|
+
timeout-minutes: 20
|
|
132
|
+
env:
|
|
133
|
+
CC: clang
|
|
134
|
+
CXX: clang++
|
|
135
|
+
ASAN_OPTIONS: detect_leaks=1:halt_on_error=1
|
|
136
|
+
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
|
|
137
|
+
|
|
138
|
+
steps:
|
|
139
|
+
- name: Checkout
|
|
140
|
+
uses: actions/checkout@v4
|
|
141
|
+
|
|
142
|
+
- name: Install dependencies
|
|
143
|
+
run: |
|
|
144
|
+
sudo apt-get update
|
|
145
|
+
sudo apt-get install -y clang cmake ninja-build
|
|
146
|
+
|
|
147
|
+
- name: Configure with AddressSanitizer and UBSan
|
|
148
|
+
run: >-
|
|
149
|
+
cmake -S . -B build-sanitize -G Ninja
|
|
150
|
+
-DCMAKE_BUILD_TYPE=Debug
|
|
151
|
+
-DMEMVANTA_NATIVE=OFF
|
|
152
|
+
-DCMAKE_CXX_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer"
|
|
153
|
+
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined"
|
|
154
|
+
|
|
155
|
+
- name: Build
|
|
156
|
+
run: cmake --build build-sanitize -j "$(nproc)"
|
|
157
|
+
|
|
158
|
+
- name: Test under sanitizers
|
|
159
|
+
run: ctest --test-dir build-sanitize --output-on-failure
|
|
160
|
+
|
|
161
|
+
- name: Build GGUF fuzz target
|
|
162
|
+
run: |
|
|
163
|
+
cmake -S . -B build-fuzz -G Ninja -DMEMVANTA_NATIVE=OFF -DMEMVANTA_BUILD_FUZZER=ON
|
|
164
|
+
cmake --build build-fuzz --target memvanta_gguf_fuzz -j "$(nproc)"
|
|
165
|
+
|
|
166
|
+
- name: GGUF fuzz smoke
|
|
167
|
+
run: ./build-fuzz/memvanta_gguf_fuzz -runs=1000 -max_len=16384
|
|
168
|
+
|
|
169
|
+
thread-sanitizer:
|
|
170
|
+
name: clang-TSan
|
|
171
|
+
runs-on: ubuntu-latest
|
|
172
|
+
timeout-minutes: 20
|
|
173
|
+
env:
|
|
174
|
+
CC: clang
|
|
175
|
+
CXX: clang++
|
|
176
|
+
TSAN_OPTIONS: halt_on_error=1:second_deadlock_stack=1
|
|
177
|
+
|
|
178
|
+
steps:
|
|
179
|
+
- name: Checkout
|
|
180
|
+
uses: actions/checkout@v4
|
|
181
|
+
|
|
182
|
+
- name: Install dependencies
|
|
183
|
+
run: |
|
|
184
|
+
sudo apt-get update
|
|
185
|
+
sudo apt-get install -y clang cmake ninja-build
|
|
186
|
+
|
|
187
|
+
- name: Configure with ThreadSanitizer
|
|
188
|
+
run: >-
|
|
189
|
+
cmake -S . -B build-tsan -G Ninja
|
|
190
|
+
-DCMAKE_BUILD_TYPE=Debug
|
|
191
|
+
-DMEMVANTA_NATIVE=OFF
|
|
192
|
+
-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE
|
|
193
|
+
-DCMAKE_CXX_FLAGS="-fsanitize=thread -fno-omit-frame-pointer"
|
|
194
|
+
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread"
|
|
195
|
+
|
|
196
|
+
- name: Build
|
|
197
|
+
run: cmake --build build-tsan -j "$(nproc)"
|
|
198
|
+
|
|
199
|
+
- name: Test under ThreadSanitizer
|
|
200
|
+
run: ctest --test-dir build-tsan --output-on-failure
|
|
201
|
+
|
|
202
|
+
macos:
|
|
203
|
+
name: macOS-Clang
|
|
204
|
+
runs-on: macos-latest
|
|
205
|
+
timeout-minutes: 20
|
|
206
|
+
|
|
207
|
+
steps:
|
|
208
|
+
- name: Checkout
|
|
209
|
+
uses: actions/checkout@v4
|
|
210
|
+
|
|
211
|
+
- name: Configure
|
|
212
|
+
run: cmake -S . -B build-macos -DCMAKE_BUILD_TYPE=Release -DMEMVANTA_NATIVE=OFF
|
|
213
|
+
|
|
214
|
+
- name: Build
|
|
215
|
+
run: cmake --build build-macos -j 3
|
|
216
|
+
|
|
217
|
+
- name: Test
|
|
218
|
+
run: ctest --test-dir build-macos --output-on-failure
|