# UMoX architecture ## Definition **UMoX (Unified Mixture of Executors)** treats heterogeneous processors as execution specialists. It borrows the organizational idea of a model-side mixture of experts without pretending the hardware engines are interchangeable tensor units. The admitted prototype is task-parallel: | Lane | Current engine/model | Responsibility | |---|---|---| | Primary | Adreno GPU / Ornith 35B Q4_K_M | planning, difficult reasoning, coding, final synthesis | | Utility | Hexagon NPU / Qwen3 4B Instruct | bounded summarization, classification, extraction, rewriting | | Control/tool | Oryon CPU | routing, MCP/tools, retrieval, filesystem, validation, transport | The models remain resident and share the platform's unified memory system, but they do not recompute the same request. Independent work overlaps so that the NPU removes safe utility demand from the GPU queue. ## Request lifecycle 1. A loopback OpenAI-compatible endpoint receives the request. 2. A deterministic classifier inspects request shape, explicit task tags, estimated input size, and static safety markers. 3. Tools, structured output, high-risk markers, and default/unknown work select the GPU lane. 4. Only allowlisted task tags below the configured input cap select the NPU. 5. For tool-free requests, retryable NPU failure may fall back to the GPU before the first body fragment is committed. 6. Once streaming begins, the route never changes. Stream failure terminates honestly rather than silently producing a mixed answer. 7. Logs contain route metadata and timings, never prompt or response bodies. ## Safety invariants - GPU is the default. - Token length can disqualify NPU routing but cannot qualify it. - Model-generated content cannot select a route. - Tools always use the GPU lane. - High-risk vocabulary outranks explicit routing overrides. - Unsafe overrides are disabled by default and unmistakably labeled when enabled in a development configuration. - Loopback binding is mandatory for the admitted topology. - No retry occurs after response commitment. These controls are part of the measured architecture. A future learned router may advise scheduling, but it cannot replace the hard safety boundary. ## Why direct layer splitting is not the admitted path The research program measured three direct NPU lanes: | Attempt | Result | |---|---| | Batch-1 decode components/layers | Closed: transfer/session boundaries exceeded the token-path budget | | Prompt prefill offload | Closed through 32K context: qualified GPU prompt processing remained faster | | NPU speculative verifier | Closed under the registered acceptance regime: per-layer session overhead dominated | The work produced useful kernels, provenance tooling, numerical gates, and prompt-processing maps, but it did not earn a place in production inference. Those conclusions remain conditional on the measured software stack; a future fused persistent runtime could reopen them with new evidence. ## Where the CPU contributes The CPU is not a spare transformer engine. It is the control plane: - filesystem and repository scans; - token counting and prompt assembly; - retrieval and context compression; - MCP/tool execution; - schema and policy validation; - queueing, cancellation, backpressure, health, and recovery. Offloading ordinary 35B layers to the CPU would compete for shared memory bandwidth and add synchronization. Removing non-model work from accelerator critical paths is usually more valuable. ## Scaling beyond the laptop The planned topology adds an optional deep lane on a workstation reachable over an authenticated private network: - local NPU: fast utility work; - local GPU: normal 35B reasoning; - remote GPU: 70B+ or expensive visual/deep work; - local CPU: policy, tools, validation, and failover. Remote failure must leave the local two-model system functional. No remote lane will be described as production-ready until latency, privacy, authentication, and local-fallback gates pass.