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.
Files changed (433) hide show
  1. memvanta-0.8.3/.clang-format +19 -0
  2. memvanta-0.8.3/.github/CODEOWNERS +7 -0
  3. memvanta-0.8.3/.github/ISSUE_TEMPLATE/benchmark-reproduction.md +67 -0
  4. memvanta-0.8.3/.github/dependabot.yml +7 -0
  5. memvanta-0.8.3/.github/pull_request_template.md +42 -0
  6. memvanta-0.8.3/.github/scripts/check_social_preview.py +85 -0
  7. memvanta-0.8.3/.github/workflows/cancel-obsolete-pr-runs.yml +69 -0
  8. memvanta-0.8.3/.github/workflows/ci.yml +218 -0
  9. memvanta-0.8.3/.github/workflows/full-model-correctness.yml +238 -0
  10. memvanta-0.8.3/.github/workflows/issue12-prefetch-matrix.yml +85 -0
  11. memvanta-0.8.3/.github/workflows/issue12-real-model-baseline.yml +85 -0
  12. memvanta-0.8.3/.github/workflows/issue12-real-prefetch-ab.yml +96 -0
  13. memvanta-0.8.3/.github/workflows/medium-model-ab.yml +142 -0
  14. memvanta-0.8.3/.github/workflows/model-correctness-matrix.yml +240 -0
  15. memvanta-0.8.3/.github/workflows/oneb-model-ab.yml +218 -0
  16. memvanta-0.8.3/.github/workflows/pages.yml +65 -0
  17. memvanta-0.8.3/.github/workflows/pr-benchmark-evidence.yml +117 -0
  18. memvanta-0.8.3/.github/workflows/publish-benchmark-results.yml +227 -0
  19. memvanta-0.8.3/.github/workflows/pypi-publish.yml +125 -0
  20. memvanta-0.8.3/.github/workflows/ram-constrained.yml +196 -0
  21. memvanta-0.8.3/.github/workflows/real-model-ab.yml +212 -0
  22. memvanta-0.8.3/.github/workflows/release.yml +186 -0
  23. memvanta-0.8.3/.github/workflows/sevenb-feasibility.yml +232 -0
  24. memvanta-0.8.3/.github/workflows/sevenb-ffn-kernel-ab.yml +280 -0
  25. memvanta-0.8.3/.github/workflows/sevenb-ffn-tuning.yml +184 -0
  26. memvanta-0.8.3/.github/workflows/sevenb-model-ab.yml +200 -0
  27. memvanta-0.8.3/.github/workflows/sevenb-ram-constrained.yml +269 -0
  28. memvanta-0.8.3/.github/workflows/sevenb-throughput-profile.yml +203 -0
  29. memvanta-0.8.3/.github/workflows/sevenb-weight-prefetch-pressure.yml +195 -0
  30. memvanta-0.8.3/.github/workflows/threeb-model-ab.yml +279 -0
  31. memvanta-0.8.3/.github/workflows/throughput-factorial-screen-v2.yml +139 -0
  32. memvanta-0.8.3/.gitignore +47 -0
  33. memvanta-0.8.3/BENCHMARKS.md +86 -0
  34. memvanta-0.8.3/BENCHMARK_MANIFEST.json +125 -0
  35. memvanta-0.8.3/CITATION.cff +22 -0
  36. memvanta-0.8.3/CMakeLists.txt +209 -0
  37. memvanta-0.8.3/CONTRIBUTING.md +49 -0
  38. memvanta-0.8.3/INDUSTRY_BENCHMARK.md +79 -0
  39. memvanta-0.8.3/LICENSE +201 -0
  40. memvanta-0.8.3/PKG-INFO +198 -0
  41. memvanta-0.8.3/README.md +175 -0
  42. memvanta-0.8.3/REAL_MODEL_BENCHMARK.md +123 -0
  43. memvanta-0.8.3/SECURITY.md +21 -0
  44. memvanta-0.8.3/V04_REAL_MODEL.md +146 -0
  45. memvanta-0.8.3/V05_BATCHED_PREFILL_BENCHMARK.md +148 -0
  46. memvanta-0.8.3/V06_GEMM_BENCHMARK.md +95 -0
  47. memvanta-0.8.3/V071_TOKENIZER_HARDENING.md +88 -0
  48. memvanta-0.8.3/V072_REAL_MODEL_AB.md +54 -0
  49. memvanta-0.8.3/V073_PERFORMANCE_HARDENING.md +24 -0
  50. memvanta-0.8.3/V07_REAL_MODEL_HEADLINE.md +25 -0
  51. memvanta-0.8.3/benchmarks/auto_tune.cpp +77 -0
  52. memvanta-0.8.3/benchmarks/eval_bench.cpp +93 -0
  53. memvanta-0.8.3/benchmarks/issue12_prefetch_matrix.sh +73 -0
  54. memvanta-0.8.3/benchmarks/issue12_real_model_baseline.sh +68 -0
  55. memvanta-0.8.3/benchmarks/issue12_real_prefetch_ab.cpp +200 -0
  56. memvanta-0.8.3/benchmarks/kernel_bench.cpp +150 -0
  57. memvanta-0.8.3/benchmarks/llama2c_bench.cpp +95 -0
  58. memvanta-0.8.3/benchmarks/llama_style_bench.cpp +410 -0
  59. memvanta-0.8.3/benchmarks/llama_style_bench_v04.cpp +363 -0
  60. memvanta-0.8.3/benchmarks/profile_bench.cpp +208 -0
  61. memvanta-0.8.3/benchmarks/real_model_bench.cpp +200 -0
  62. memvanta-0.8.3/benchmarks/streaming_bench.cpp +101 -0
  63. memvanta-0.8.3/cmake/toolchains/aarch64-linux-gnu.cmake +17 -0
  64. memvanta-0.8.3/docs/ARCHITECTURE.md +51 -0
  65. memvanta-0.8.3/docs/BENCHMARK_CHECKLIST.md +25 -0
  66. memvanta-0.8.3/docs/EXTERNAL_REPRODUCTION.md +44 -0
  67. memvanta-0.8.3/docs/FULL_MODEL_CORRECTNESS.md +40 -0
  68. memvanta-0.8.3/docs/MEMORY_BENCHMARKING.md +83 -0
  69. memvanta-0.8.3/docs/performance/.gitkeep +0 -0
  70. memvanta-0.8.3/docs/performance/PERSISTENT_DECODE_POOL_EXPERIMENT.md +32 -0
  71. memvanta-0.8.3/docs/performance/README.md +8 -0
  72. memvanta-0.8.3/docs/performance/RESEARCH_2025_2026_NOTES.md +76 -0
  73. memvanta-0.8.3/fuzz/gguf_fuzz.cpp +45 -0
  74. memvanta-0.8.3/google6f58f6dc503549cc.html +1 -0
  75. memvanta-0.8.3/include/memvanta/checked_math.hpp +29 -0
  76. memvanta-0.8.3/include/memvanta/common.hpp +19 -0
  77. memvanta-0.8.3/include/memvanta/gguf.hpp +131 -0
  78. memvanta-0.8.3/include/memvanta/gguf_kernels.hpp +67 -0
  79. memvanta-0.8.3/include/memvanta/llama2.hpp +64 -0
  80. memvanta-0.8.3/include/memvanta/llama_model.hpp +170 -0
  81. memvanta-0.8.3/include/memvanta/lru_cache.hpp +52 -0
  82. memvanta-0.8.3/include/memvanta/matmul.hpp +10 -0
  83. memvanta-0.8.3/include/memvanta/mmap_file.hpp +40 -0
  84. memvanta-0.8.3/include/memvanta/prefetch_policy.hpp +55 -0
  85. memvanta-0.8.3/include/memvanta/prefetcher.hpp +45 -0
  86. memvanta-0.8.3/include/memvanta/quant.hpp +55 -0
  87. memvanta-0.8.3/include/memvanta/runtime.hpp +74 -0
  88. memvanta-0.8.3/include/memvanta/tensor_store.hpp +29 -0
  89. memvanta-0.8.3/include/memvanta/worker_pool.hpp +41 -0
  90. memvanta-0.8.3/industry_results.csv +6 -0
  91. memvanta-0.8.3/pyproject.toml +74 -0
  92. memvanta-0.8.3/python/memvanta/__init__.py +10 -0
  93. memvanta-0.8.3/python/memvanta/__main__.py +3 -0
  94. memvanta-0.8.3/python/memvanta/cli.py +32 -0
  95. memvanta-0.8.3/python/memvanta/py.typed +0 -0
  96. memvanta-0.8.3/results/REAL_MODEL_DIAGNOSTIC_2026-08-20.md +41 -0
  97. memvanta-0.8.3/results/VALIDATION_GATES_2026-08-21.md +49 -0
  98. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454762869/WORKFLOW_RUN.md +8 -0
  99. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454762869/diagnostic-summary.json +3 -0
  100. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454996570/WORKFLOW_RUN.md +8 -0
  101. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454996570/diagnostic-summary.json +3 -0
  102. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32454996570/model-url.txt +1 -0
  103. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/WORKFLOW_RUN.md +8 -0
  104. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/compatibility-status.txt +4 -0
  105. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/diagnostic-summary.json +3 -0
  106. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/environment.txt +56 -0
  107. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/expected-model.sha256 +1 -0
  108. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/full-benchmark-status.txt +1 -0
  109. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/generation-smoke.exitcode.txt +1 -0
  110. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/generation-smoke.txt +0 -0
  111. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/llama-micro.exitcode.txt +1 -0
  112. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/llama-micro.json +1 -0
  113. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/llama_cpp_commit.txt +1 -0
  114. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/memvanta-micro.exitcode.txt +1 -0
  115. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model-sha-check.txt +1 -0
  116. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model-size.txt +1 -0
  117. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model-url.txt +1 -0
  118. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/model.sha256 +1 -0
  119. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/tokenizer-smoke.exitcode.txt +1 -0
  120. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455442161/tokenizer-smoke.txt +0 -0
  121. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455906722/WORKFLOW_RUN.md +8 -0
  122. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455906722/diagnostic-summary.json +3 -0
  123. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32455906722/model-url.txt +1 -0
  124. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/WORKFLOW_RUN.md +8 -0
  125. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/diagnostic-summary.json +3 -0
  126. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/llama_cpp_commit.txt +1 -0
  127. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-files.txt +8 -0
  128. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-metadata.json +5 -0
  129. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-revision.txt +1 -0
  130. memvanta-0.8.3/results/diagnostics/openllama-3b-v2-ab-run-32456208803/source-size.txt +1 -0
  131. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/SUMMARY.md +17 -0
  132. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/WORKFLOW_RUN.md +8 -0
  133. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-1.csv +450 -0
  134. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-1.txt +39 -0
  135. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-2.csv +450 -0
  136. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-2.txt +39 -0
  137. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-3.csv +450 -0
  138. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/baseline-3.txt +39 -0
  139. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/environment.txt +58 -0
  140. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-1.csv +450 -0
  141. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-1.txt +39 -0
  142. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-2.csv +450 -0
  143. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-2.txt +39 -0
  144. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-3.csv +450 -0
  145. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/optimized-3.txt +39 -0
  146. memvanta-0.8.3/results/diagnostics/openllama-7b-v2-ffn-kernel-ab-run-35621954260/summary.json +168 -0
  147. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/WORKFLOW_RUN.md +8 -0
  148. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/compatibility-status.txt +4 -0
  149. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/diagnostic-summary.json +3 -0
  150. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/environment.txt +53 -0
  151. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/full-benchmark-status.txt +1 -0
  152. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/generation-smoke.exitcode.txt +1 -0
  153. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/generation-smoke.txt +1 -0
  154. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/llama-micro.exitcode.txt +1 -0
  155. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/llama-micro.json +90 -0
  156. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/memvanta-micro.exitcode.txt +1 -0
  157. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/model-sha-check.txt +1 -0
  158. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/model-size.txt +1 -0
  159. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/model.sha256 +1 -0
  160. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/tokenizer-smoke.exitcode.txt +1 -0
  161. memvanta-0.8.3/results/diagnostics/tinyllama-1.1b-ab-run-32449669157/tokenizer-smoke.txt +3 -0
  162. memvanta-0.8.3/results/openllama-3b-v2-ab/SUMMARY.md +11 -0
  163. memvanta-0.8.3/results/openllama-3b-v2-ab/WORKFLOW_RUN.md +8 -0
  164. memvanta-0.8.3/results/openllama-3b-v2-ab/compatibility-status.txt +4 -0
  165. memvanta-0.8.3/results/openllama-3b-v2-ab/environment.txt +60 -0
  166. memvanta-0.8.3/results/openllama-3b-v2-ab/full-benchmark-status.txt +2 -0
  167. memvanta-0.8.3/results/openllama-3b-v2-ab/generation-smoke.exitcode.txt +1 -0
  168. memvanta-0.8.3/results/openllama-3b-v2-ab/generation-smoke.txt +2 -0
  169. memvanta-0.8.3/results/openllama-3b-v2-ab/gguf-header.json +4 -0
  170. memvanta-0.8.3/results/openllama-3b-v2-ab/llama-bench.exitcode.txt +1 -0
  171. memvanta-0.8.3/results/openllama-3b-v2-ab/llama-bench.json +90 -0
  172. memvanta-0.8.3/results/openllama-3b-v2-ab/llama-micro.exitcode.txt +1 -0
  173. memvanta-0.8.3/results/openllama-3b-v2-ab/llama-micro.json +90 -0
  174. memvanta-0.8.3/results/openllama-3b-v2-ab/llama_cpp_commit.txt +1 -0
  175. memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta-micro.csv +2 -0
  176. memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta-micro.exitcode.txt +1 -0
  177. memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta.csv +6 -0
  178. memvanta-0.8.3/results/openllama-3b-v2-ab/memvanta.exitcode.txt +1 -0
  179. memvanta-0.8.3/results/openllama-3b-v2-ab/model-size.txt +1 -0
  180. memvanta-0.8.3/results/openllama-3b-v2-ab/model.sha256 +1 -0
  181. memvanta-0.8.3/results/openllama-3b-v2-ab/source-files.txt +8 -0
  182. memvanta-0.8.3/results/openllama-3b-v2-ab/source-metadata.json +5 -0
  183. memvanta-0.8.3/results/openllama-3b-v2-ab/source-revision.txt +1 -0
  184. memvanta-0.8.3/results/openllama-3b-v2-ab/source-size.txt +1 -0
  185. memvanta-0.8.3/results/openllama-3b-v2-ab/summary.json +28 -0
  186. memvanta-0.8.3/results/openllama-3b-v2-ab/tokenizer-smoke.exitcode.txt +1 -0
  187. memvanta-0.8.3/results/openllama-3b-v2-ab/tokenizer-smoke.txt +3 -0
  188. memvanta-0.8.3/results/openllama-7b-v2-ab/SUMMARY.md +11 -0
  189. memvanta-0.8.3/results/openllama-7b-v2-ab/WORKFLOW_RUN.md +8 -0
  190. memvanta-0.8.3/results/openllama-7b-v2-ab/compatibility-status.txt +4 -0
  191. memvanta-0.8.3/results/openllama-7b-v2-ab/environment.txt +59 -0
  192. memvanta-0.8.3/results/openllama-7b-v2-ab/full-benchmark-status.txt +2 -0
  193. memvanta-0.8.3/results/openllama-7b-v2-ab/generation-smoke.exitcode.txt +1 -0
  194. memvanta-0.8.3/results/openllama-7b-v2-ab/generation-smoke.txt +2 -0
  195. memvanta-0.8.3/results/openllama-7b-v2-ab/gguf-header.json +4 -0
  196. memvanta-0.8.3/results/openllama-7b-v2-ab/llama-bench.exitcode.txt +1 -0
  197. memvanta-0.8.3/results/openllama-7b-v2-ab/llama-bench.json +90 -0
  198. memvanta-0.8.3/results/openllama-7b-v2-ab/llama-micro.exitcode.txt +1 -0
  199. memvanta-0.8.3/results/openllama-7b-v2-ab/llama-micro.json +90 -0
  200. memvanta-0.8.3/results/openllama-7b-v2-ab/llama_cpp_commit.txt +1 -0
  201. memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta-micro.csv +2 -0
  202. memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta-micro.exitcode.txt +1 -0
  203. memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta.csv +6 -0
  204. memvanta-0.8.3/results/openllama-7b-v2-ab/memvanta.exitcode.txt +1 -0
  205. memvanta-0.8.3/results/openllama-7b-v2-ab/model-size.txt +1 -0
  206. memvanta-0.8.3/results/openllama-7b-v2-ab/model-url.txt +1 -0
  207. memvanta-0.8.3/results/openllama-7b-v2-ab/model.sha256 +1 -0
  208. memvanta-0.8.3/results/openllama-7b-v2-ab/summary.json +28 -0
  209. memvanta-0.8.3/results/openllama-7b-v2-ab/tokenizer-smoke.exitcode.txt +1 -0
  210. memvanta-0.8.3/results/openllama-7b-v2-ab/tokenizer-smoke.txt +3 -0
  211. memvanta-0.8.3/results/openllama-7b-v2-feasibility/SUMMARY.md +11 -0
  212. memvanta-0.8.3/results/openllama-7b-v2-feasibility/WORKFLOW_RUN.md +8 -0
  213. memvanta-0.8.3/results/openllama-7b-v2-feasibility/compatibility-status.txt +4 -0
  214. memvanta-0.8.3/results/openllama-7b-v2-feasibility/environment.txt +61 -0
  215. memvanta-0.8.3/results/openllama-7b-v2-feasibility/full-validation-status.txt +2 -0
  216. memvanta-0.8.3/results/openllama-7b-v2-feasibility/generation-smoke.exitcode.txt +1 -0
  217. memvanta-0.8.3/results/openllama-7b-v2-feasibility/generation-smoke.txt +2 -0
  218. memvanta-0.8.3/results/openllama-7b-v2-feasibility/gguf-header.json +4 -0
  219. memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-bench.exitcode.txt +1 -0
  220. memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-bench.json +90 -0
  221. memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-micro.exitcode.txt +1 -0
  222. memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama-micro.json +90 -0
  223. memvanta-0.8.3/results/openllama-7b-v2-feasibility/llama_cpp_commit.txt +1 -0
  224. memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta-micro.csv +2 -0
  225. memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta-micro.exitcode.txt +1 -0
  226. memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta.csv +2 -0
  227. memvanta-0.8.3/results/openllama-7b-v2-feasibility/memvanta.exitcode.txt +1 -0
  228. memvanta-0.8.3/results/openllama-7b-v2-feasibility/model-size.txt +1 -0
  229. memvanta-0.8.3/results/openllama-7b-v2-feasibility/model-url.txt +1 -0
  230. memvanta-0.8.3/results/openllama-7b-v2-feasibility/model.sha256 +1 -0
  231. memvanta-0.8.3/results/openllama-7b-v2-feasibility/summary.json +10 -0
  232. memvanta-0.8.3/results/openllama-7b-v2-feasibility/tokenizer-smoke.exitcode.txt +1 -0
  233. memvanta-0.8.3/results/openllama-7b-v2-feasibility/tokenizer-smoke.txt +3 -0
  234. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/SUMMARY.md +18 -0
  235. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/WORKFLOW_RUN.md +8 -0
  236. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-1.csv +451 -0
  237. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-1.txt +41 -0
  238. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-2.csv +451 -0
  239. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-2.txt +41 -0
  240. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-3.csv +451 -0
  241. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/baseline-3.txt +41 -0
  242. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/environment.txt +55 -0
  243. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-1.csv +451 -0
  244. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-1.txt +41 -0
  245. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-2.csv +451 -0
  246. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-2.txt +41 -0
  247. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-3.csv +451 -0
  248. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/optimized-3.txt +41 -0
  249. memvanta-0.8.3/results/openllama-7b-v2-ffn-kernel-ab/summary.json +170 -0
  250. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/SUMMARY.md +20 -0
  251. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/WORKFLOW_RUN.md +8 -0
  252. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/correctness.diff +0 -0
  253. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/environment.txt +51 -0
  254. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b16.csv +451 -0
  255. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b16.txt +41 -0
  256. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b32.csv +451 -0
  257. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b32.txt +41 -0
  258. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b64.csv +451 -0
  259. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-b64.txt +41 -0
  260. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/fp32-correctness.txt +2 -0
  261. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/model.sha256 +1 -0
  262. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/promotion.txt +1 -0
  263. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b16.csv +451 -0
  264. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b16.txt +41 -0
  265. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b32.csv +451 -0
  266. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b32.txt +41 -0
  267. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b64.csv +451 -0
  268. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-b64.txt +41 -0
  269. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/q8act-correctness.txt +2 -0
  270. memvanta-0.8.3/results/openllama-7b-v2-ffn-tuning/results.csv +7 -0
  271. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/SUMMARY.md +11 -0
  272. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/WORKFLOW_RUN.md +8 -0
  273. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/boundaries.env +4 -0
  274. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/environment.txt +64 -0
  275. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/model-sha-check.txt +1 -0
  276. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/model-size.txt +1 -0
  277. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/model.sha256 +1 -0
  278. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/results.csv +30 -0
  279. memvanta-0.8.3/results/openllama-7b-v2-ram-constrained/summary.json +318 -0
  280. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/SUMMARY.md +16 -0
  281. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/WORKFLOW_RUN.md +8 -0
  282. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/environment.txt +57 -0
  283. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/layer-profile.csv +451 -0
  284. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/model-size.txt +1 -0
  285. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/model.sha256 +1 -0
  286. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/profile.txt +41 -0
  287. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/summary.json +106 -0
  288. memvanta-0.8.3/results/openllama-7b-v2-throughput-profile/time.txt +23 -0
  289. memvanta-0.8.3/results/q4-1b-batchlut-unroll-validation/SUMMARY.md +13 -0
  290. memvanta-0.8.3/results/q4-1b-batchlut-unroll-validation/summary.json +31 -0
  291. memvanta-0.8.3/results/q4-24way-structural-screen/SUMMARY.md +33 -0
  292. memvanta-0.8.3/results/q4-24way-structural-screen/summary.json +368 -0
  293. memvanta-0.8.3/results/q4-2d-scheduler-screen-v3/SUMMARY.md +30 -0
  294. memvanta-0.8.3/results/q4-2d-scheduler-screen-v3/summary.json +278 -0
  295. memvanta-0.8.3/results/q4-360m-top2-validation/SUMMARY.md +12 -0
  296. memvanta-0.8.3/results/q4-360m-top2-validation/summary.json +49 -0
  297. memvanta-0.8.3/results/q4-activation-pack-screen/SUMMARY.md +12 -0
  298. memvanta-0.8.3/results/q4-activation-pack-screen/summary.json +44 -0
  299. memvanta-0.8.3/results/q4-locality-screen/SUMMARY.md +14 -0
  300. memvanta-0.8.3/results/q4-locality-screen/summary.json +72 -0
  301. memvanta-0.8.3/results/q4-lut-medium-ab/SUMMARY.md +13 -0
  302. memvanta-0.8.3/results/q4-lut-medium-ab/summary.json +31 -0
  303. memvanta-0.8.3/results/q4-multirow-repeat-validation/SUMMARY.md +9 -0
  304. memvanta-0.8.3/results/q4-multirow-repeat-validation/summary.json +34 -0
  305. memvanta-0.8.3/results/q4-multirow-tile-screen/SUMMARY.md +12 -0
  306. memvanta-0.8.3/results/q4-multirow-tile-screen/summary.json +44 -0
  307. memvanta-0.8.3/results/q4-nibble-unpack-screen/SUMMARY.md +12 -0
  308. memvanta-0.8.3/results/q4-nibble-unpack-screen/summary.json +49 -0
  309. memvanta-0.8.3/results/smollm2-360m/WORKFLOW_RUN.md +8 -0
  310. memvanta-0.8.3/results/smollm2-360m/benchmark-provenance.txt +50 -0
  311. memvanta-0.8.3/results/smollm2-360m/medium-bench.txt +6 -0
  312. memvanta-0.8.3/results/smollm2-360m/medium-greedy.txt +2 -0
  313. memvanta-0.8.3/results/smollm2-360m/medium-model-size.txt +1 -0
  314. memvanta-0.8.3/results/smollm2-360m/medium-tokenizer.txt +3 -0
  315. memvanta-0.8.3/results/smollm2-360m-ab/SUMMARY.md +11 -0
  316. memvanta-0.8.3/results/smollm2-360m-ab/WORKFLOW_RUN.md +8 -0
  317. memvanta-0.8.3/results/smollm2-360m-ab/environment.txt +50 -0
  318. memvanta-0.8.3/results/smollm2-360m-ab/llama-bench.json +90 -0
  319. memvanta-0.8.3/results/smollm2-360m-ab/memvanta.csv +6 -0
  320. memvanta-0.8.3/results/smollm2-360m-ab/summary.json +49 -0
  321. memvanta-0.8.3/results/stories15m-repeated-ab/WORKFLOW_RUN.md +8 -0
  322. memvanta-0.8.3/results/stories15m-repeated-ab/llama_cpp_commit.txt +1 -0
  323. memvanta-0.8.3/results/throughput-factorial-screen/SUMMARY.md +25 -0
  324. memvanta-0.8.3/results/throughput-factorial-screen/environment.txt +52 -0
  325. memvanta-0.8.3/results/throughput-factorial-screen/summary.json +848 -0
  326. memvanta-0.8.3/results/tinyllama-1.1b-ab/SUMMARY.md +11 -0
  327. memvanta-0.8.3/results/tinyllama-1.1b-ab/WORKFLOW_RUN.md +8 -0
  328. memvanta-0.8.3/results/tinyllama-1.1b-ab/compatibility-status.txt +4 -0
  329. memvanta-0.8.3/results/tinyllama-1.1b-ab/environment.txt +53 -0
  330. memvanta-0.8.3/results/tinyllama-1.1b-ab/full-benchmark-status.txt +2 -0
  331. memvanta-0.8.3/results/tinyllama-1.1b-ab/generation-smoke.exitcode.txt +1 -0
  332. memvanta-0.8.3/results/tinyllama-1.1b-ab/generation-smoke.txt +2 -0
  333. memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-bench.exitcode.txt +1 -0
  334. memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-bench.json +90 -0
  335. memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-micro.exitcode.txt +1 -0
  336. memvanta-0.8.3/results/tinyllama-1.1b-ab/llama-micro.json +90 -0
  337. memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta-micro.csv +2 -0
  338. memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta-micro.exitcode.txt +1 -0
  339. memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta.csv +6 -0
  340. memvanta-0.8.3/results/tinyllama-1.1b-ab/memvanta.exitcode.txt +1 -0
  341. memvanta-0.8.3/results/tinyllama-1.1b-ab/model-sha-check.txt +1 -0
  342. memvanta-0.8.3/results/tinyllama-1.1b-ab/model-size.txt +1 -0
  343. memvanta-0.8.3/results/tinyllama-1.1b-ab/model.sha256 +1 -0
  344. memvanta-0.8.3/results/tinyllama-1.1b-ab/summary.json +36 -0
  345. memvanta-0.8.3/results/tinyllama-1.1b-ab/tokenizer-smoke.exitcode.txt +1 -0
  346. memvanta-0.8.3/results/tinyllama-1.1b-ab/tokenizer-smoke.txt +3 -0
  347. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/SUMMARY.md +10 -0
  348. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/WORKFLOW_RUN.md +8 -0
  349. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/environment.txt +55 -0
  350. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/model-sha-check.txt +1 -0
  351. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/model-size.txt +1 -0
  352. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/model.sha256 +1 -0
  353. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/results.csv +21 -0
  354. memvanta-0.8.3/results/tinyllama-1.1b-ram-constrained/summary.json +194 -0
  355. memvanta-0.8.3/scripts/build_pages.py +82 -0
  356. memvanta-0.8.3/scripts/check_pages.py +141 -0
  357. memvanta-0.8.3/scripts/make_llama2_fixture.py +24 -0
  358. memvanta-0.8.3/scripts/make_smollm2_shape_gguf.py +75 -0
  359. memvanta-0.8.3/scripts/make_sparse_model.py +5 -0
  360. memvanta-0.8.3/scripts/make_tiny_gguf.py +65 -0
  361. memvanta-0.8.3/scripts/make_tokenizer_fixtures.py +56 -0
  362. memvanta-0.8.3/scripts/run_benchmarks.sh +24 -0
  363. memvanta-0.8.3/scripts/run_industry_benchmarks.sh +30 -0
  364. memvanta-0.8.3/scripts/run_real_compare.sh +25 -0
  365. memvanta-0.8.3/scripts/run_stories15m_ab.sh +113 -0
  366. memvanta-0.8.3/scripts/run_v04_industry_bench.sh +7 -0
  367. memvanta-0.8.3/scripts/run_v04_real_parity.sh +30 -0
  368. memvanta-0.8.3/scripts/run_v071_validation.sh +15 -0
  369. memvanta-0.8.3/scripts/run_v07_headline.sh +27 -0
  370. memvanta-0.8.3/scripts/summarize_ab.py +129 -0
  371. memvanta-0.8.3/scripts/sync_headline_benchmark.py +91 -0
  372. memvanta-0.8.3/site/architecture/index.template.html +83 -0
  373. memvanta-0.8.3/site/benchmark/index.template.html +83 -0
  374. memvanta-0.8.3/site/favicon.svg +4 -0
  375. memvanta-0.8.3/site/getting-started/index.template.html +99 -0
  376. memvanta-0.8.3/site/index.template.html +150 -0
  377. memvanta-0.8.3/site/llms.txt +23 -0
  378. memvanta-0.8.3/site/low-memory-llm-inference/index.template.html +80 -0
  379. memvanta-0.8.3/site/reproduce/index.template.html +97 -0
  380. memvanta-0.8.3/site/robots.txt +4 -0
  381. memvanta-0.8.3/site/sitemap.xml +39 -0
  382. memvanta-0.8.3/site/social-card.png +0 -0
  383. memvanta-0.8.3/site/styles.css +41 -0
  384. memvanta-0.8.3/src/common.cpp +33 -0
  385. memvanta-0.8.3/src/gguf.cpp +501 -0
  386. memvanta-0.8.3/src/gguf_kernels.cpp +1026 -0
  387. memvanta-0.8.3/src/llama2.cpp +315 -0
  388. memvanta-0.8.3/src/llama_model.cpp +1214 -0
  389. memvanta-0.8.3/src/lru_cache.cpp +109 -0
  390. memvanta-0.8.3/src/main.cpp +81 -0
  391. memvanta-0.8.3/src/matmul.cpp +39 -0
  392. memvanta-0.8.3/src/mmap_file.cpp +117 -0
  393. memvanta-0.8.3/src/prefetch_policy.cpp +129 -0
  394. memvanta-0.8.3/src/prefetcher.cpp +133 -0
  395. memvanta-0.8.3/src/quant.cpp +207 -0
  396. memvanta-0.8.3/src/quant_kernels.cpp +115 -0
  397. memvanta-0.8.3/src/real_main.cpp +60 -0
  398. memvanta-0.8.3/src/runtime.cpp +270 -0
  399. memvanta-0.8.3/src/tensor_store.cpp +30 -0
  400. memvanta-0.8.3/src/worker_pool.cpp +85 -0
  401. memvanta-0.8.3/tests/BENCHMARK_EVIDENCE_POLICY.md +15 -0
  402. memvanta-0.8.3/tests/check.hpp +62 -0
  403. memvanta-0.8.3/tests/concurrency_stress_tests.cpp +102 -0
  404. memvanta-0.8.3/tests/fp16_tests.cpp +55 -0
  405. memvanta-0.8.3/tests/gguf_limits_tests.cpp +103 -0
  406. memvanta-0.8.3/tests/isa_compile_tests.cpp +19 -0
  407. memvanta-0.8.3/tests/prefetch_policy_tests.cpp +137 -0
  408. memvanta-0.8.3/tests/reference/stories15m-greedy.txt +1 -0
  409. memvanta-0.8.3/tests/tests.cpp +320 -0
  410. memvanta-0.8.3/tests/tokenizer_tests.cpp +93 -0
  411. memvanta-0.8.3/tokenizer_fixtures/sp_fixture.model +0 -0
  412. memvanta-0.8.3/tokenizer_fixtures/sp_fixture.txt +11 -0
  413. memvanta-0.8.3/tokenizer_fixtures/sp_fixture.vocab +358 -0
  414. memvanta-0.8.3/tools_gguf_inspect.cpp +55 -0
  415. memvanta-0.8.3/tools_tokenize.cpp +63 -0
  416. memvanta-0.8.3/v04_benchmark_manifest.json +19 -0
  417. memvanta-0.8.3/v04_shape_benchmark_results.csv +6 -0
  418. memvanta-0.8.3/v04_smoke_compare.csv +3 -0
  419. memvanta-0.8.3/v05_industry_results.csv +11 -0
  420. memvanta-0.8.3/v05_smoke.csv +2 -0
  421. memvanta-0.8.3/v05_smoke_real.csv +3 -0
  422. memvanta-0.8.3/v06_apples_v05_primary.csv +6 -0
  423. memvanta-0.8.3/v06_auto_tune.csv +21 -0
  424. memvanta-0.8.3/v06_auto_tune.stderr +2 -0
  425. memvanta-0.8.3/v06_auto_tune_512.csv +0 -0
  426. memvanta-0.8.3/v06_auto_tune_512.stderr +0 -0
  427. memvanta-0.8.3/v06_industry_results.csv +6 -0
  428. memvanta-0.8.3/v06_runs.txt +29 -0
  429. memvanta-0.8.3/v071_ctest.txt +10 -0
  430. memvanta-0.8.3/v071_shape_industry.time +0 -0
  431. memvanta-0.8.3/v071_shape_industry.txt +0 -0
  432. memvanta-0.8.3/v072_ctest.txt +10 -0
  433. 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,7 @@
1
+ * @sauravsingla
2
+
3
+ # Benchmark evidence and reproducibility-sensitive files
4
+ /results/ @sauravsingla
5
+ /docs/MEMORY_BENCHMARKING.md @sauravsingla
6
+ /docs/BENCHMARK_CHECKLIST.md @sauravsingla
7
+ /.github/workflows/ @sauravsingla
@@ -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,7 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "monthly"
7
+ open-pull-requests-limit: 5
@@ -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