Module venn

Module venn 

Source
Expand description

2026-09-29: The kernel Venn diagram of a target model against the models we already support (met circuit venn): every target node, in every mode and row count asked for, classified against the kernel families the compared models run, ranked by estimated share of step time.

Classes, decided per node from the family manifest (families):

  • Shared: a family the compared models run, at the same compile-time and policy point, with a microbench record at that point and row count.
  • Shared, unmeasured: the same, without the record. Also a point the family already realises by an instantiation or a runtime branch while the compared models run another (the differing parameters are still listed).
  • Parameterization opportunity: the same family where declared parameters differ and one of them is compile-time; the target point is missing or exists only as a file copy.
  • Policy variant: the same, where every differing parameter is a policy.
  • Novel: no family implements the op with the node’s formats at that row count.

Owner: metrale-circuit (venn). Invariants:

  • Pure: no I/O. The caller passes the circuits, plans, manifest and measurements.
  • Deterministic: ties break by family order in the manifest, then by circuit order.
  • A compared node whose plan kernel belongs to no family, and a parameter a node cannot supply, are typed errors: the report is never built from a guess.

Re-exports§

pub use families::Families;
pub use families::FamilyError;
pub use families::ParamKind;
pub use families::parse_families;
pub use measurements::Measurements;
pub use measurements::parse_measurements;
pub use repo::Repo;
pub use repo::checkpoint_id_of;
pub use repo::report_text;
pub use repo::resolve;
pub use report::VennInputs;
pub use report::VennReport;
pub use report::build;

Modules§

checkpoint
2026-09-29: Check a target instance against the checkpoint it names: the layer kinds its config.json lists, and the precision every bound module declares (ModelOpt hf_quant_config.json or config.json quantization_config), resolved through the engine’s own policy at the declared tier with every W8A8 kernel capability present, so the answer is the declared weight and activation formats.
classify
2026-09-29: Classify one target node against the kernel families (see super for the classes): which families can run it, its point in each, the nearest point a compared model runs (or, failing that, the nearest instantiated point), and the evidence at its point.
compute
2026-10-02: The compute unit a kernel runs on: tensor cores (with the MMA atom and the operand format it issues), CUDA cores, or memory (data movement, element-wise work and reductions). Declared per family in KERNEL_FAMILIES.toml (compute, mma), per point where a family’s points differ, and per kernel where one family’s kernels differ; read by the tensor-core policy (hardware::tc_policy) and shown on every planned group.
discover
2026-09-29: Rediscover each family’s instantiated points from the kernel sources and report where the manifest and the sources disagree (drift).
families
2026-09-29: The kernel-family manifest, kernels/<hw>/common/KERNEL_FAMILIES.toml: which circuit ops each family implements, the parameters it varies (runtime, compile-time or policy), the points it instantiates, the evidence envelope (the points with microbench records) and the rules that rediscover the instantiated points from the kernel sources.
measurements
2026-09-29: The rows of docs/kernel-perf/measurements.toml an evidence record can cite, keyed <kernel> @ <regime>. The numbers stay in that file (its schema and checks are KERNEL-PERF.md’s); the manifest only maps a row to a family’s parameter point.
repo
2026-09-29: A whole met circuit venn run over a repository reached through Repo: resolve the target and compared instances, load their circuits, check the family manifest against the kernel sources, build and render the report. The CLI supplies a file-system Repo; the tests supply the same one over the checked-out tree, so both run this code.
report
2026-09-29: Build a whole Venn report: fuse the compared models at every requested mode and row count, classify and estimate every target node, group the nodes into sites (one template node across its layers), rank them by estimated step share, and flag the layer kinds that cannot batch rows.
roofline
2026-09-29: The roofline estimate of one node’s time in one step, from its edge shapes and formats: max(bytes / DRAM bandwidth, FLOPs / tensor peak). It ranks a Venn report’s rows until measured profiles replace it.

Structs§

Diff
2026-09-29: A parameter whose value differs from the compared point.
Finding
2026-09-29: A node’s classification against one family.
Run
2026-09-29: One mode and row count.
Subject
2026-09-29: One model on either side of the diagram, at one mode and row count.
VennArgs
2026-09-29: What the CLI was asked for.

Enums§

Class
2026-09-29: A node’s class.
Compared
2026-09-29: What a target node was compared with.
VennError
2026-09-29: Why a Venn table could not be built.

Functions§

render
2026-09-29: Render r as Markdown.