BigMoeOnEdge/CONTRIBUTING.md
Helldez ecd7b56834
feat(bench): community benchmarks: one-command host protocol, issue form, results table (#176)
Every published number comes from one phone and one laptop. This adds what a
contributor needs to add a row from hardware we do not own, without reading code:

- scripts/bench-report.sh runs the fixed README protocol on any Linux/macOS host
  (256 greedy tokens, the reference prompt, auto cache, 4 lanes, overlap, dense
  weights out of the page cache), records CPU / RAM / drive and the drive's
  measured O_DIRECT rate at 512 KiB requests from the model file itself, and
  prints the two markdown tables a report needs. Every figure is read from the
  CSV `# summary` trailer by key name.
- .github/ISSUE_TEMPLATE/benchmark-report.yml collects hardware, model, engine
  version and the pasted tables; tok/s alone is not accepted as a row.
- docs/community-benchmarks.md holds the protocol, the hardware wanted and why,
  the reference models in the catalog quants, the meaning of each column, and
  the results table seeded with the README rows.
- README, CONTRIBUTING and the docs index point at it.
2026-08-27 21:29:19 +02:00

36 lines
1.5 KiB
Markdown

# Contributing
Thanks for your interest. BigMoeOnEdge stays deliberately small and disciplined.
## Ground rules
- **Never patch `third_party/llama.cpp` in-tree.** Work through its public API. Keeping
the submodule stock is the point of the project (see `docs/seam.md`).
- **The byte-identity gates must pass.** Streaming must stay lossless. Run
`ctest --output-on-failure` before opening a PR; if you change the streamer or the seam,
say so in the PR and note the gate result.
- **No hardcoding.** New MoE architectures are recipe rows (`docs/adding-a-model.md`).
- English everywhere. Conventional Commits. Match `.clang-format`.
## Getting set up
```bash
git clone --recursive https://github.com/Helldez/BigMoeOnEdge.git
cd BigMoeOnEdge
scripts/build-host.sh
cd build && ctest --output-on-failure
```
## Good first contributions
- **A benchmark on hardware we do not have.** No code needed: `scripts/bench-report.sh MODEL.gguf`
runs the fixed protocol and prints the tables; open a
[benchmark report](https://github.com/Helldez/BigMoeOnEdge/issues/new?template=benchmark-report.yml).
See `docs/community-benchmarks.md` for the hardware list and what a row needs.
- A new MoE architecture recipe + its gate (`docs/adding-a-model.md`).
- Read coalescing / expert-contiguous layout experiments (see `docs/roadmap.md`).
## PRs
Keep them focused. Describe what you measured if the change is performance-related, and on
what hardware. Update the relevant doc in the same PR as the code.