# Explicit owner embeddings

Mid values now carry OwnerMap: a logical ordinal rotation followed by an optional shared embedding onto an arbitrary device-tile subset. Distribution remains in TensorType. The explicit map is injective, checked against the device and declared logical owner count, and shared through Arc. Existing unembedded rotations preserve their old meaning.

Low expansion and per-tile memory accounting use the same owner lookup. Fragment substitution preserves group bindings and relative rotations; ownership-sensitive copy, fusion and alias checks compare full maps. Mid owns operand-home binding, using declared operand indexing and allocation aliases, including donation dependencies outside the callable operands. Changed homes produce explicit copies; distributed sums retain their own contributor traffic and can place their result outside the partial owners.

This is the representation foundation. Global mapping proposals still exist outside Recipe; scoped choices, stable family sites and the rest of the proposal remain unfinished. No code-size or device-speed improvement is claimed for this stage.

Validation:

- Workspace release suite passed: 424 tests, 0 failures, 8 ignored. After extending the rotation/Repeat tests and adding the separate-donation relocation test, the affected ipu-codegen suite passed again: 320 unit tests plus 1 doc test, 6 ignored.
- Final all-target workspace check passed without warnings. Formatting and diff whitespace checks passed.
- SDK-enabled saved_search_preserves_budget_aliases_and_order passed using real package construction and resumed search.
- The independent copy byte oracle covers arbitrary owner subsets with nonzero rotations; memory accounting agrees with equivalent physical rotations. Fragment tests expand rebound Repeat bodies, invalid embeddings fail before expansion, and reduction results can be assigned outside the contributor tiles. A separate donation buffer follows its output home and still shares the placed output allocation.
- FP16 MLP Repeat 3 hardware PASS: maximum absolute error 0.000183; package byte-identical to planner-ownership/mlp-f16-repeat3.ipuexe.
- FP8 ViT Repeat 3 hardware PASS: maximum absolute error 0.189453; minimum cosine 0.997459656; package byte-identical to planner-ownership/vit-fp8-repeat3.ipuexe.
- Real-weight SigLIP So400m, 27 layers, BS1, six real images: hardware PASS. Package and all six device outputs byte-identical to planner-ownership/real-bs1. Minimum FP32-reference cosine 0.994567066. Build plus six-image run took 111.478 seconds; this was a correctness run, not an isolated compiler benchmark.

Commands, logs and comparison results are adjacent. Host logs: /tmp/ipu-owners-workspace-tests-final.log, /tmp/ipu-owners-codegen-tests-final.log, /tmp/ipu-owners-final-check.log, /tmp/ipu-owners-replay-test.log and /tmp/ipu-owners-cli-build.log. Current production code was built for hardware before the final changes, which added tests and adjusted comments only.
