Contributing¶
How the repository is laid out, how to run its checks, and the conventions a change is reviewed against. The conventions exist because a cost model that is wrong usually still produces a plausible number.
Set up¶
git clone https://github.com/inference-sim/blis-latency-kernel
cd blis-latency-kernel
scripts/fetch-testdata.sh
go test ./...
The fetch script brings in the catalog and registry at the commits the tests are pinned to;
testdata/README.md describes what else is in testdata/ and why some of it is not
committed. CI runs the same tests on every pull request, with gofmt and go vet.
Layout¶
| Path | Holds |
|---|---|
kernel.go |
The interface methods and the composition of a step |
new.go |
New: validation, resolution, coefficient lookup, everything computed once |
sparse_mla.go |
Which sparse-attention backend vLLM chooses, and what that decides |
open.go |
Open, OpenPool, OpenInputs: from a scenario file to the documents |
internal/price |
The cost laws, as pure functions |
internal/resolve |
From a deployment to a layout: widths, groups, which collectives run |
internal/harness |
What the commands share |
internal/docgen |
The generator for docs/generated/ |
cmd/ |
The five commands on Commands |
Conventions¶
Cite the engine. A statement about what vLLM does names the lines it rests on, as
vllm/<path>:<lines>, at v0.31.0. A reviewer can then check it in one command.
Refuse, or say so. A deployment the engine would not start, or the kernel cannot price
truthfully, is refused with an error that names the setting. A default filled in on the
deployment's behalf is recorded with assume; a coefficient the kernel can do without is read
through optional, which records its absence. Nothing is defaulted silently.
Mark what is knowingly wrong. A term priced differently from the engine on purpose, or
left out, carries a comment marked KNOWN DIVERGENCE, KNOWN over-charge or COVERAGE LIMIT,
with the reason and the engine lines. Those notes are listed on
Known divergences, each under a plain summary kept in
internal/docgen/summaries.go; the generator refuses a note without one.
Test behavior, and see the test fail. A test asserts what the kernel does for an input, not how its code is arranged. How the laws are tested describes the kinds of test used. Break a new law on purpose and confirm a test fails, and say in the commit what you broke.
Measure a change's effect. A change to pricing reports how it moves cmd/shape and
cmd/score in its commit message, with the figures before and after. Those commands need the
measurement corpora, which are not in the repository.
Documentation¶
Documentation and releases describes the site, how its generated parts are kept current, and how a release publishes it.
Changes across the repositories¶
A change that also touches blis-schemas, the catalog, the registry or inference-sim follows Changes across the repositories, which links the canonical process and lists the kernel's own steps.