E6003

E6003 — A value is used from a topology that cannot see the memory space it lives in. The diagnostic names the value's space, the visible set of the topology reading it, and the cost of the transfer that would fix it — so a misplaced handoff (an un-transferred KV cache in a disaggregated prefill/decode split, say) is a compile error that carries its own remedy. A managed: cached space the topology can reach across a declared seam is coherent in hardware and is not reported here.

What the compiler reports

E6003 … 'host_data' lives in CPU_DRAM … NPU[0] sees only [NPU_HBM] … insert an explicit transfer to NPU_HBM

The fragments the test suite holds the compiler to. An ellipsis marks text the test does not constrain; the emitted message also carries a source location.

A program that triggers it

fn main() -> i32 {
  let host_data = Tensor<f32>();

  spawn on(Topology::NPU[0]) {
    let x = host_data[0];
  }
  return 0;
}

// The NPU cannot see host DRAM: E6003 names where the value lives, what the
// topology sees, and the costed fix (#253).

From tests/frontend/fail/memory_algebra.vx, which asserts this diagnostic on every commit.

Related