contenox
Browse docs/

OpenVINO Backend Facts

Scope: text-only modeld OpenVINO backend on Windows Intel AI-PC hardware.

Test host:

  • CPU: Intel Core Ultra 7 155H
  • GPU: integrated Intel Arc GPU
  • NPU: Intel AI Boost
  • Runtime path: contenox-windows-amd64.exe -> modeld.cmd -> OpenVINO GenAI
  • Packaged modeld: v0.32.5, OpenVINO GenAI 2026.2.0.0, backends llama, openvino
  • Runtime CLI: v0.32.8
  • GPU driver in latest rerun: 32.0.101.8132
  • Python token counter runtime in latest rerun: openvino_genai 2026.2.1.0-3123-7dea0459b2a

Validated Constraints

AreaFactRuntime stance
Text pipelineThe backend uses OpenVINO GenAI ContinuousBatchingPipeline.Certify text models only.
NPUThe CB/PagedAttention path is unsupported on NPU.Explicit NPU opens are rejected; AUTO excludes NPU for this path.
Arc iGPU XAttentionThe tested Arc/driver stack rejects XAttention.Automatic sparse attempts retry dense; explicit sparse remains a hard failure.
Multimodal reposgemma4-e4b-ov is a VLM repo, not a text-only CB target.Do not curate it for the text adapter.
Scheduler poolToo-small CB block pools can poison an OpenVINO pipeline after allocator exhaustion. Oversized pools can thrash unified memory.Default cache_size is derived from hot context and capped; known allocator-leak errors mark sessions fatal and close the backend.
TinyLlama length capThe model config carries a total max_length that can conflict with max_new_tokens.modeld clears inherited total-length caps for generation and echo-prefill.
TinyLlama context advertisementRuntime/model metadata advertises TinyLlama at its trained ceiling (max_position_embeddings=2048).11.6k-token runtime requests are rejected unless a certified long-context profile/model exists.
Deferred physical prefillCONTENOX_OPENVINO_DEFER_PREFILL=1 avoids physical prefill in no-cold-store sessions.Keep opt-in; it is slower for the single-turn no-tools TinyLlama workload below.
Token accountingRuntime trace rows report zero prompt/completion usage for these OpenVINO runs.Benchmark completion tokens are counted from --raw assistant output with the OpenVINO tokenizer.
Windows packagingThe tested host needed a local executable cgo wrapper to rebuild the MSVC/OpenVINO package.Add a checked-in Windows packaging path before treating this as reproducible release machinery.

TinyLlama Results

Model: tinyllama-1.1b-chat-v1.0-int4-ov

Workload: contenox run --chain scripts/contenox-bench-no-tools-chain.json, no tool schemas, --context 4096, --max-tokens 64, device GPU.

Prompt files: prompt-00374.txt, prompt-02900.txt, prompt-11600.txt.

Runtime Path

Rerun date: 2026-07-01.

prompt labelruntime assembled tokensmodedevicecontext flagresultwalltrace taskcompletione2e ratetrace raterun directory
374300defaultGPU4,096success6.88 s5.45 s65 tok9.45 tok/s11.94 tok/sC:\Users\aertli\contenox-build\bench-runs\codex-20260701-tinyllama-product\default-00374
2,9001,907defaultGPU4,096success9.97 s8.47 s64 tok6.42 tok/s7.56 tok/sC:\Users\aertli\contenox-build\bench-runs\codex-20260701-tinyllama-product\default-02900
11,6007,437defaultGPU16,384resolver reject1.61 s0.21 sn/an/an/aC:\Users\aertli\contenox-build\bench-runs\codex-20260701-tinyllama-product\default-11600
374300deferred prefillGPU4,096success6.91 s5.52 s65 tok9.41 tok/s11.79 tok/sC:\Users\aertli\contenox-build\bench-runs\codex-20260701-tinyllama-product\defer-00374
2,9001,907deferred prefillGPU4,096success15.43 s14.01 s64 tok4.15 tok/s4.57 tok/sC:\Users\aertli\contenox-build\bench-runs\codex-20260701-tinyllama-product\defer-02900
374300defaultNPU4,096unsupported1.53 s0.14 sn/an/an/aC:\Users\aertli\contenox-build\bench-runs\codex-20260701-tinyllama-product\npu-00374

NPU error:

OpenVINO NPU cannot run the continuous-batching (effective-context) pipeline;
PagedAttention is unsupported on the NPU; use CONTENOX_OPENVINO_DEVICE=GPU or CPU, or AUTO

Raw OpenVINO Control

Raw rows use Python OpenVINO GenAI ContinuousBatchingPipeline, dense attention, cache_size=1, max_new_tokens=64. They do not include runtime routing, transport, system prompt, chain execution, or session bookkeeping.

prompt labelloadgeneratewallcompletiongenerate ratewall raterun directory
3744.9 s1.5 s6.4 s65 tok43.55 tok/s10.22 tok/sC:\Users\aertli\contenox-build\bench-runs\raw-openvino-tinyllama-cb-context-00374-audited
2,9005.0 s4.0 s9.0 s53 tok13.28 tok/s5.90 tok/sC:\Users\aertli\contenox-build\bench-runs\raw-openvino-tinyllama-cb-context-02900
11,6005.0 s30.6 s35.7 s62 tok2.03 tok/s1.74 tok/sC:\Users\aertli\contenox-build\bench-runs\raw-openvino-tinyllama-cb-context-11600

Reads

  • The rebuilt default runtime path is usable on this GPU for the tested TinyLlama no-tools workload at 374 and 2,900 prompt-token labels.
  • Raw OpenVINO generate-only throughput remains higher than the runtime path. At 374 tokens the runtime wall is near raw load+generate wall; at 2,900 tokens raw wall is lower.
  • Deferred physical prefill is not a default candidate for single-turn no-tools generation.
  • The 11.6k raw OpenVINO control is not a certified runtime result because the runtime rejects the request before modeld inference.
  • Explicit NPU is a supported negative test: modeld rejects it before inference with a PagedAttention unsupported-feature error.
  • TinyLlama output quality is poor for the repo-summary prompt: it echoes or continues the prompt. Throughput and answer quality must be tracked separately.
  • The tested Arc iGPU rows are dense fallback rows, not successful XAttention rows.

Requirements implied by these rows are owned by the OpenVINO hardening blueprint (packaging, fatal classification and upstream tracking, certification matrix), the backend parity contract (trace token usage), and the capability-truth blueprint (context advertisement).

Esc to close