A purpose-built, mathematically proven, zero-bloat local LLM runner, multi-modal generative studio, and high-throughput server engineered specifically for Intel® Arc™ GPUs (discrete & integrated) and Intel® NPUs (Neural Processing Units).
To keep this landing page fast, readable, and executive, detailed technical documentation, hardware proofs, and engine manuals have been modularized into dedicated guides:
| Guide / Document | Description | Key Topics |
|---|---|---|
| 🎯 Mission & Vision Manifesto | Breaking CUDA Monopoly & Intel Hardware Liberation | The silicon democratization manifesto, solving Ollama's silent CPU fallback, 5W NPU matrix compute, and open-source credits. |
| 💰 Economic & Server Cost Analysis | Slashing AI Server OpEx by 70–90% & Breaking NVIDIA Tax | FinOps report, mathematical proofs E1–E4, dual USD/INR TCO matrix, multi-GPU rackmount servers, and 70B Flash-Stream economics. |
| 🎬 Arc MultiModal Studio | Autonomous AI Production Studio & Co-Benchmarking | Flagship scenario, 5 bottlenecks solved, Cloud Cost-Killer ROI analysis, Studio CLI & REST API. |
| 🏗️ Architecture & Subsystems | System Architecture & Hardware Interfaces | Subsystem deep-dive, Level Zero integration, Multi-LoRA hot-swapping, Continuous batching & paged KV cache. |
| 🌐 Universal Ollama Ingestion | Direct Remote Ollama Distribution Streaming | Download, cache, and run any model directly from registry.ollama.ai with Range resume and SHA-256 verification. |
| 🧮 Silicon Math Architecture | Mathematical Quantization & Cacheline Packing | Dequantization theorems M1–M7, Symmetric INT4 Group 128 repacking, 32-byte cacheline DMA, and SQNR gates. |
| ⚡ Computational Graph Synthesizer | GGUF to OpenVINO IR v11 DAG Generator | Fixes Issue #48 by synthesizing full computational graphs (Parameter -> SDPA -> Result), tokenizers, and configs. |
| 📈 Silicon Telemetry & Diagnosis | Closed-Loop Profiling & Auto-Tuning Engine | Real-time Roofline analysis, jitter standard deviation, P-core residency, and automated bottleneck prescriptions. |
| 📦 Model Hub & Hardware Engines | 34 Registry Models & Multi-Modal Engine Guides | Model matrix, Audio AI (Whisper/Kokoro), Image (SD/SDXL), Video (LTX-Video), 7-Tab Web UI, GGUF transpiler, NPU embeddings. |
| 📊 Benchmarks Hub | Comprehensive Empirical & Quantitative Results | Entry point to all benchmarking data, testbed silicon specs, and methodology. |
| ↳ Comparative Benchmark Matrix | Quantitative Inference Benchmark Matrix | Tables 1–7 (LLMs, 5W NPU Embeddings, Vision, Audio, Image, Video, and Table 7 Flash-Stream 32B/72B from a synthetic container, not real weights) & Leviathan speculative-efficiency derivation; legacy tables, UNVERIFIED. |
| ↳ Mathematical Proofs (M59–M134) | Formal Theorems & Invariants | 70 formal mathematical proofs covering Audio AI, Diffusion, Video AI, and Flash-Stream Heterogeneous Zero-RAM Execution (Proofs M121–M134). |
| ↳ Empirical Silicon Proofs | Real Silicon Hardware Telemetry | UNVERIFIED legacy document (see its banner): the 30.8× GPU-vs-CPU TTFT figure is not reproduced (measured CPU/GPU TTFT ratios on Qwen2.5-1.5B are 2.3× to 17.7×, and the speed-up claim gate fails), live sequential reclaim runs, 21-test hardware suite, GPU vs NPU breakdown, a Flash-Stream memory trace taken on a synthetic container (mapped bytes, not resident memory), and an Ollama comparison whose Ollama baseline was not run. |
| ↳ Ollama Showdown & 30-Case Audit | Head-to-Head Comparison vs Ollama | Ollama "Silent CPU Fallback" anatomy (Proof M56), output coherence (M57/M58), 30-case Triad Audit matrix, and a heavy-model Ollama OOM comparison whose Ollama run was never executed (UNVERIFIED). |
| 🤖 Claude Code | Use Claude Code against arc-runner serve |
Anthropic /v1/messages (stream and tool use), env vars for Bash and PowerShell, what works, limits and troubleshooting; Claude Code itself was not run, see its UNVERIFIED list. |
| 🖱️ Cursor | Use Cursor against arc-runner serve |
OpenAI-compatible /v1/chat/completions, Cursor settings (Base URL, API Key, model name), smoke tests, tool-calling limits; Cursor itself was not run, see its UNVERIFIED list. |
| 🚀 Deployment & Packaging Guide | Standalone PyPI Wheel & Docker Deployment | Production guide for pip install arc-runner, Ubuntu 24.04 Docker image, /dev/dri pass-through, and Kubernetes Helm specs. |
| 🧪 Complete Test Coverage | Full Test Suite Roadmap & Execution | Non-hardware suite counts measured with pytest (the guide gives the collected, passed, skipped and hardware-deselected numbers and their date); hardware-marked tests are reported as not run, Triad testing patterns, C sanitizer harnesses. |
| 🗺️ Roadmap & Multi-Modal Evolution | Delivered Milestones & Packaging Horizon | 15 core milestones + full Packaging Horizon delivered, 7 next-gen orchestration hurdles scorecard, PyPI & Docker targets. |
| 📐 Visual Diagrams Guide | UML & Draw.io Diagram Catalog | 13 architectural UML diagrams with embedded previews and editable draw.io links. |
| 🔬 R&D Forensics Reports | Deep Technical R&D & Whitepapers | 7 foundational research papers on Ollama defects, Intel silicon, solution blueprints, orchestration proofs, packaging math, and bare-metal flash streaming (Proofs M121–M134). |
| 🤝 Community Benchmarks Guide | Open Source Benchmarking Call | Community guidelines for benchmarking across Intel silicon (Alchemist, Battlemage, Lunar Lake, Arrow Lake). |
🎯 Our Core Mission: Local AI should never be held hostage by the NVIDIA CUDA monopoly or proprietary hardware taxes. For years, millions of users with Intel® Arc™ GPUs and Intel® Core™ Ultra NPUs were denied first-class support—left with crashing runtimes, multi-gigabyte compiler prerequisites, or Ollama's infamous "Silent CPU Fallback" (burning CPU threads at 2–6 tok/s while the Arc GPU sat idle).
intel-arc-models-runnerwas built to restore hardware dignity to Intel silicon: unlocking native Level Zero GPU acceleration, 5W NPU speculative decoding, and autonomous multi-modal generation with zero bloat and mathematical honesty.💰 The Economic Advantage (70%–90% Server Cost Reduction): Model training is a one-time CapEx, but continuous inference accounts for 85%+ of ongoing AI OpEx. NVIDIA exploits this with 80%+ gross margins and artificially starved consumer VRAM. By running high-density Intel Arc servers (e.g. 4x Arc A770 16GB delivering 64GB aggregate VRAM for ~$1,200 / ₹1.13L) and 5W NPUs, enterprises achieve hardware payback in under 46 days compared to AWS cloud rentals, saving over $165,000 USD (₹1.57 Crore INR) over a 3-year horizon.
👉 Read the full whitepapers: 🎯 Mission & Vision Manifesto • 💰 Economic & Server Cost Analysis (FinOps Whitepaper)
While mainstream local LLM tools like Ollama were designed with a CUDA-first and Apple Metal-first focus, intel-arc-models-runner treats Intel silicon as first-class citizens:
- Native Dual Silicon Acceleration: Run models natively on Intel Arc Discrete GPUs (A770, A750, B580), Core Ultra iGPUs (Xe-LPG, Xe2), and Intel NPUs (AI Boost NPU 3720 / NPU 4000).
- Bare-Metal Flash-Stream Heavy Model Engine: Designed to stream 32B/72B-class weights through a fixed-size layer ring buffer (memory-mapped reads, optional prefetch, NPU attention / GPU SwiGLU split; Proofs M121–M134 are mathematical models, not measurements). No real 32B/72B model has been run: the only Flash-Stream run on record used a synthetic 8-layer, hidden-size-32 container on a host with about 1.24 GB free DRAM, so no model quality, tokens-per-second, or memory-saving claim is made for 32B/72B.
- Draft-model speculative decoding (NPU draft, GPU verify): wired through OpenVINO GenAI's draft-model support. Its speed-up, acceptance rate and power draw have not been measured with this repository's harness; earlier published figures for them were removed (see the benchmark method).
- Autonomous Multi-Modal Media Studio: Orchestrates LLM Director, Kokoro Voiceover, and SDXL / LTX-Video Visuals with zero-copy memory handoff and closed-loop pacing convergence.
- Drop-in Ollama & OpenAI Compatibility: Compatible with
/api/generate,/api/chat,/api/tags, and/v1/chat/completionsfor instant use with Open WebUI, Cursor, Claude Code, and LangChain. - Zero-Bloat Standalone Runtime: Built directly on OpenVINO GenAI C++ and Level Zero runtimes; no 5 GB oneAPI SDK installation or heavy PyTorch environments required.
- Accurate Token Accounting: Measured token counts via the OpenVINO pipeline tokenizer;
is_estimateflag in telemetry distinguishes measured from estimated values, with no invented numbers (WP-14). - Fast Cold-Start: PEP 562 lazy imports via
__getattr__inarc_runner/__init__.pydefer heavy OpenVINO/numpy loads to first use, reducing import latency without breaking existing import paths (WP-15).
Arc MultiModal Studio orchestrates Text, Audio, and Visual engines locally on Intel heterogeneous silicon:
User Prompt ──► Director LLM (NPU/GPU) ──► Kokoro TTS (NPU/GPU) ──► Slide Compositor / DiT (Arc GPU) ──► Muxer (.mp4)
- Cloud cost comparison: runs the studio pipeline locally. Cloud prices are third-party and not verified by this project, so ROI is computed only from prices you supply (see multimodal studio); no savings figure is claimed here.
- 5 Critical Hurdles Solved: Heterogeneous Compute Splitting (no peak-VRAM figure is claimed; none is measured), a Level Zero USM zero-copy bridge (opt-in, no latency measured), Closed-Loop Pacing Convergence (tolerance
convergence_tolerance_sec=0.05in the muxer), Dual-Stage AST Auto-Repair, and Fork-Join Concurrency Barriers. - Next-Gen Features: Hardware QSV H.264 encoding, Alpha cross-dissolve, Audio-First Reactive DAG, dynamic karaoke subtitles, and autonomous VLM inspection gate.
👉 Read the full guide: Arc MultiModal Studio Documentation
- Supported Hardware:
- Discrete GPUs: Intel® Arc™ A770, A750, A580, A380, A310 (Alchemist) or B580, B570 (Battlemage)
- Integrated GPUs: Intel® Core™ Ultra Series 1 (Meteor Lake Xe-LPG) or Series 2 (Lunar Lake / Arrow Lake Xe2)
- Neural Processing Units: Intel® AI Boost NPU (NPU 3720 / NPU 4000)
- Operating System: Windows 11 / Windows 10 (64-bit), or Ubuntu 22.04+ / Linux kernel 6.6+
- Driver Stack: Intel Graphics Driver 32.0.101.6127+ or oneAPI Level Zero runtime 1.3+
- Python: Version 3.10, 3.11, 3.12, or 3.13
Install the standalone binary distribution directly:
pip install arc-runnerProvides dual CLI commands arc-runner and intel-arc-models-runner with pre-bundled Studio Web UI and cross-platform Level Zero resolution.
Run directly with GPU acceleration via Docker Compose:
docker compose up -dOr execute manual container run with direct /dev/dri render node pass-through:
docker run -d --name intel-arc-models-runner --device /dev/dri:/dev/dri -p 8000:8000 ghcr.io/techdeveloper-org/intel-arc-models-runner:latestOn Windows, use install.bat to install the package and configure the CLI:
.\install.batYou can also double-click install.bat in File Explorer. It launches the
PowerShell installer with a process-only execution-policy bypass when needed;
it does not change your machine's PowerShell policy. This is the recommended
entry point when scripts are restricted.
Running .\install.ps1 directly is different: PowerShell checks its execution
policy before loading that file. If scripts are disabled, the command fails
before the installer can run, so the script cannot bypass that restriction
from inside itself. Use install.bat in that case.
git clone https://github.com/techdeveloper-org/intel-arc-models-runner.git
cd intel-arc-models-runner
python -m pip install -e ".[dev]"On Windows, pip install by itself does not add Python's Scripts directory to
PATH. Run install.bat with the same Python environment active to configure
that directory and verify the CLI. If you have already installed with pip, you
can still run install.bat; it installs from this project checkout. Open a new
terminal after setup so it picks up the updated PATH. In the current terminal,
use python -m arc_runner.cli.main --version until you reopen it.
# Discover connected Intel Arc GPUs, NPUs, and CPUs
arc-runner devices
# Run real silicon integration tests with Rich terminal telemetry
arc-runner test-hardwarearc-runner runs models itself using OpenVINO. You do not need to install or
start Ollama. The server implements Ollama-compatible API routes so clients
that already support Ollama can connect to arc-runner; that compatibility
does not mean the Ollama application is the model runtime here. This project
does not currently provide an interactive arc-runner run <model> terminal
chat command. Use its browser chat UI or send requests to its API.
Pull a model, then start the server from the same working directory (the
default model folder is ./models):
arc-runner pull llama-3.2-3b
arc-runner models
arc-runner serve --host 127.0.0.1 --port 11434 --default-model llama-3.2-3bLeave the server running, then open http://localhost:11434/ and use the Chat
tab. --default-model asks the server to load that model at startup; requests
should still include its model name.
Port conflict with Ollama: Ollama commonly listens on port 11434. Only one
process can listen on the same host and port. If Ollama is running, either stop
it or start arc-runner on another port, such as 11435, and use that port in
the browser and client settings:
arc-runner serve --host 127.0.0.1 --port 11435 --default-model llama-3.2-3bThen open http://localhost:11435/. To keep using both applications, leave
Ollama on 11434 and use 11435 for arc-runner. For compatible clients such
as Open WebUI, Cursor, or Claude Code, set the base URL to the matching runner
address, for example http://localhost:11435.
You can also send a one-off prompt using the Ollama-compatible generate API. This PowerShell example prints the response as JSON:
Invoke-RestMethod -Method Post `
-Uri http://localhost:11435/api/generate `
-ContentType "application/json" `
-Body '{"model":"llama-3.2-3b","prompt":"Explain Intel Arc GPU in simple words","stream":false}'Use port 11434 in the URL if that is the port you selected for arc-runner.
The server also answers POST /v1/messages and POST /v1/messages/count_tokens, so Claude Code can be pointed at it with ANTHROPIC_BASE_URL=http://127.0.0.1:11434 and ANTHROPIC_AUTH_TOKEN=local. Streaming, tool-call parsing and the error envelope are tested with fake engines only; Claude Code itself was not run, and the context window is resolved per model (ARC_CONTEXT_WINDOW, then max_position_embeddings in the model's config.json, then 4096); a window of 4096 is smaller than Claude Code's own prompt. Read docs/claude-code.md for the exact steps, the limits and what is UNVERIFIED.
# Pull official curated models
arc-runner pull llama-3.2-3b
arc-runner pull deepseek-r1-1.5b
# Benchmark on Intel Arc GPU or NPU with 95% confidence intervals
arc-runner benchmark llama-3.2-3b --device GPU --iterations 5
# Speech-to-Text with Whisper on Arc GPU
arc-runner transcribe lecture.wav --model whisper-base --device GPU
# Text-to-Speech with Kokoro-82M on Arc GPU / NPU
arc-runner tts "Intel Arc matrix architecture accelerates local AI." --output voice.wav --voice af_heart
# Text-to-Image with Stable Diffusion / SDXL on Arc GPU
arc-runner generate-image "Cyberpunk laboratory with glowing neon circuits, 8k" --output lab.png --model lcm --steps 4
# Text-to-Video with LTX-Video on Arc GPU
arc-runner generate-video "A golden retriever puppy chasing a bouncing tennis ball, 4k" --output puppy.mp4 --model ltx-video
# Autonomous Studio: Full Video Production from natural language prompt
arc-runner studio "Quantum Physics and Wave Particle Duality" --duration 12.0 --resolution 1280x720
# Offline GGUF -> OpenVINO INT4/INT8 Transpiler
arc-runner convert ./llama-3.2-3b-Q4_0.gguf --output ./models/llama-openvino --precision int4
# NPU vector embeddings (power not measured)
arc-runner embed nomic-embed-text "What is Intel Arc GPU?" --device NPU👉 For the full catalog of 34 registry entries and detailed engine parameters, see: Model Hub & Hardware Engines Reference
arc-runner serve exposes POST /v1/messages, so you can point Claude Code at it the same way you would point it at Ollama or OpenCode — no Anthropic API key needed, inference runs locally on your Intel Arc GPU or NPU.
arc-runner pull llama-3.2-3b
arc-runner serve --host 127.0.0.1 --port 11434 --default-model llama-3.2-3bIf Ollama already occupies port 11434, use --port 11435 and adjust the URL below.
Bash / Linux / macOS:
export ANTHROPIC_BASE_URL=http://127.0.0.1:11434
export ANTHROPIC_AUTH_TOKEN=local
export ANTHROPIC_MODEL=llama-3.2-3b
export ANTHROPIC_DEFAULT_HAIKU_MODEL=llama-3.2-3b
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=2048
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export CLAUDE_CODE_ATTRIBUTION_HEADER=0Windows PowerShell:
$env:ANTHROPIC_BASE_URL = "http://127.0.0.1:11434"
$env:ANTHROPIC_AUTH_TOKEN = "local"
$env:ANTHROPIC_MODEL = "llama-3.2-3b"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "llama-3.2-3b"
$env:CLAUDE_CODE_MAX_OUTPUT_TOKENS = "2048"
$env:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = "1"
$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"
$env:CLAUDE_CODE_ATTRIBUTION_HEADER = "0"claudeOr open a project directory directly:
claude /path/to/your/projectUNVERIFIED notice. The server-side Anthropic Messages API is covered by automated tests with fake engines. Claude Code itself was not run while this was written, and no real model was loaded during testing. Anthropic does not support routing Claude Code to non-Claude models; this works only as far as the wire protocol matches. See docs/claude-code.md for the full list of what is UNVERIFIED, context-window tuning (
ARC_CONTEXT_WINDOW), and troubleshooting.
👉 Full guide, context-window limits, and troubleshooting: docs/claude-code.md
⚠️ Cursor Subscription Required for Custom Models. Cursor requires a paid subscription (Pro, $20/month) to use any custom or local model via a custom API key. On the free plan, Chat, Edit, and Agent modes all show the error "Agent and Edit rely on custom models that require a paid subscription" and do not work with a local server. The arc-runner server itself works correctly (the API responds normally — this is a Cursor-side plan restriction, not an arc-runner issue).
arc-runner serve exposes POST /v1/chat/completions (OpenAI-compatible). If you have a Cursor Pro subscription, you can point Cursor at it as follows.
arc-runner pull llama-3.2-3b
arc-runner serve --host 127.0.0.1 --port 11434 --default-model llama-3.2-3bIf Ollama already occupies port 11434, use --port 11435 and adjust the base URL below.
Open Cursor → Ctrl+Shift+J (Cursor Settings) → Models tab, and enter:
| Field | Value |
|---|---|
| OpenAI Base URL | http://127.0.0.1:11434/v1 |
| OpenAI API Key | local (any non-empty string) |
| Model Name | llama-3.2-3b (or the name from arc-runner models) |
Cursor appends
/chat/completionsto the Base URL. The URL must end with/v1(no trailing slash).
Before configuring Cursor, confirm the server is up with these commands in PowerShell:
# Health check
Invoke-RestMethod http://127.0.0.1:11434/health
# → status: ok
# List available models
Invoke-RestMethod http://127.0.0.1:11434/v1/models -Headers @{authorization="Bearer local"}
# Full chat test
$body = '{"model":"llama-3.2-3b","max_tokens":64,"messages":[{"role":"user","content":"Say hi"}]}'
Invoke-RestMethod -Method Post -Uri "http://127.0.0.1:11434/v1/chat/completions" `
-ContentType "application/json" `
-Headers @{authorization="Bearer local"} `
-Body $bodyIf the chat test returns a response with choices and usage, the server is working correctly regardless of Cursor plan.
| Feature | Cursor Free | Cursor Pro ($20/mo) |
|---|---|---|
Chat (Ctrl+L) with custom local model |
❌ Blocked | ✅ Works |
| Edit (inline code edit) with custom model | ❌ Blocked | ✅ Works |
| Agent / Composer with custom model | ❌ Blocked | ✅ Works |
| Tab autocomplete with custom model | ❌ Blocked | ✅ Works |
| Cursor's own hosted AI (Claude/GPT) | ✅ Limited free credits | ✅ Included |
👉 Full guide, troubleshooting, and UNVERIFIED list: docs/cursor.md
flowchart TD
subgraph Client ["Client & Tooling Layer"]
CLI["arc-runner CLI"]
WebUI["Studio WebUI & Open WebUI (:11434)"]
IDE["Cursor / Claude Code / LangChain"]
end
subgraph Daemon ["arc-runner Daemon (:11434)"]
Router["Asynchronous HTTP Gateway (FastAPI)"]
BatchPipeline["BatchExecutionPipeline & ContinuousBatcher"]
ModelMgr["ModelManager & PagedBlockTable"]
Router --> BatchPipeline & ModelMgr
end
subgraph Engines ["Pluggable Backend Engines (OpenVINO GenAI)"]
OVEngine["OpenVINOGenAIEngine (LLMs)"]
SpecEngine["HybridSpeculativeEngine (NPU Draft + Arc Verify)"]
AudioEngine["AudioEngine (Whisper ASR & Kokoro TTS)"]
ImageEngine["ImageEngine (SD 1.5, LCM, SD-Turbo, SDXL)"]
VideoEngine["VideoEngine (LTX-Video, CogVideoX, AnimateDiff)"]
StudioEngine["StudioDirector & MultiModal Pipeline"]
end
subgraph Silicon ["Physical Intel Silicon Layer (Level Zero)"]
ArcGPU["Intel Arc GPU (Xe-LPG / Battlemage / A770)"]
IntelNPU["Intel AI Boost NPU (3720 / 4000)"]
HostCPU["Intel Core Ultra Host CPU"]
end
Client --> Daemon
Daemon --> Engines
Engines --> Silicon
- SerialWorker (
src/arc_runner/server/worker.py): single daemon thread draining a SimpleQueue, eliminating event-loop stalls proven at 2077ms. - ContinuousBatchingScheduler (
src/arc_runner/engine/cb_scheduler.py): iteration-level batching wrapper over OpenVINO GenAI with dynamic concurrency capping. - ArcMmapContext & pybind11 ABI v4 (
src/arc_runner/native/bridge.py): C++ RAII memory-mapped context manager and fast tensor descriptor index. - SpeculativeDecodeEngine (
src/arc_runner/engine/speculative.py): heterogeneous dual-silicon speculative decoding offloading draft tokens to Intel AI Boost NPU with Arc GPU verification. - ThermalMonitor & ThrottlePolicy (
src/arc_runner/engine/thermal_monitor.py): proactive closed-loop thermal and power governance with hysteresis concurrency capping.
👉 For detailed subsystem breakdowns, Multi-LoRA hot-swapping, and UML diagrams, see: Architecture & Subsystem Deep Dive
The codebase is organized into modular, decoupled packages designed for high maintainability, strict typing, and zero circular dependencies:
intel-arc-models-runner/
├── src/arc_runner/ # Main Python application package
│ ├── benchmark/ # Automated inference & throughput benchmark harness
│ ├── cli/ # Rich terminal CLI interfaces (`arc-runner`, `intel-arc-models-runner`)
│ ├── core/ # Constants, custom exceptions, telemetry metrics & centralized logging
│ ├── devices/ # Silicon discovery, Intel Arc GPU/NPU detection & Level Zero Sysman telemetry
│ ├── engine/ # Inference engines (OpenVINO GenAI, continuous batching, speculative, audio, vision)
│ ├── hub/ # Model registry, Hugging Face downloader, and Ollama registry streaming importer
│ ├── native/ # Bare-metal C/C++ acceleration layer (pybind11 ABI v4, Win32 mmap, Level Zero USM)
│ ├── orchestrator/ # Autonomous MultiModal Studio Director, workers, and reactive media DAG
│ ├── quant/ # GGUF binary parser, model quantization math, and OpenVINO IR graph synthesizer
│ ├── server/ # FastAPI daemon (:11434, :8000), SSE streaming, and Ollama/OpenAI/Anthropic routes
│ ├── testing/ # Real silicon integration test harnesses and claim gate validators
│ └── utils/ # Windows DLL activation context loader, platform utils & helpers
├── docs/ # Comprehensive technical documentation & research whitepapers
│ ├── benchmarks/ # Quantitative benchmark methodology, result schemas, and empirical matrices
│ ├── diagrams/ # Master visual catalog (`README.md`) with embedded previews and browser editor links
│ ├── research/ # R&D whitepapers (Ollama defects, Intel silicon, solution blueprints, Flash-Stream)
│ ├── mission_and_vision.md # The Silicon Democratization Manifesto & Open-Source Acknowledgments
│ └── economic_and_cost_analysis.md # Server cost crisis, FinOps TCO, dual USD/INR proofs & rackmount ROI
├── uml/ # Canonical Level 2.3 UDM Architecture Diagrams (Mermaid format, Rule 45)
│ ├── package_diagram.md # 10 clean core packages & Level Zero bindings
│ ├── component_diagram.md # Subsystem interfaces, REST daemons & silicon drivers
│ ├── sequence_diagram.md # Speculative NPU-GPU execution & streaming lifecycle
│ └── ... (13 total diagrams) # Complete UML suite (activity, state, deployment, usecase, etc.)
├── drawio/ # 13 Synchronized editable .drawio XML diagrams (for diagrams.net instant editing)
├── tests/ # Comprehensive pytest suite (unit, integration, property-based, sanitizer harnesses)
├── Dockerfile # Production Ubuntu 24.04 container with pre-baked Intel Level Zero drivers
├── docker-compose.yml # Instant GPU pass-through container orchestration
├── pyproject.toml # Modern PEP 621 / hatchling package metadata & build configuration
├── SRS.md # Software Requirements Specification (Level 2.2 Canonical Root Doc)
└── README.md # Project landing page & user guide
To prevent confusion regarding the diagram directories:
uml/(Repository Root): Contains the 13 canonical Level 2.3 Universal Diagram Model (UDM) diagrams in GitHub Flavored Mermaid Markdown, authored in strict accordance with Rule11-documentation-files.mdand Rule45-uml-diagram-lifecycle.md.drawio/(Repository Root): Contains the exact 13 editable.drawioXML files paired 1-to-1 withuml/, enabling instant zero-auth browser editing in app.diagrams.net.docs/diagrams/(docs/diagrams/README.md): Acts as the Master Visual Gallery & Catalog. It embeds live visual previews of all 13 diagrams, provides direct one-click browser links, and stores specialized subsystem flows (such as compiler AST transpiler pipelines and closed-loop telemetry loops). Both root directories anddocs/diagrams/work in synchronized harmony.
intel-arc-models-runner ships a bare-metal native C/C++ acceleration layer (libarc_native_sys.dll / .so) that bypasses Python overhead entirely for maximum throughput on Intel Arc silicon.
Python Layer → pybind11 C++20 / ctypes FFI bridge → libarc_native_sys.dll (ABI v4)
├─ arc_native_pybind.cpp (pybind11 RAII context & tensor map)
├─ arc_flash_stream_mmap.c (Win32 zero-copy mmap)
└─ arc_level_zero_bridge.c (Level Zero USM DMA)
No speed-up figure is claimed for any item below until it is measured with the benchmark method; status is what the code and tests establish today.
| Feature | Description | Status |
|---|---|---|
| Bounds-checked memory mapping | arc_mmap_* maps the model file read-only; every tensor extent is validated against the file size at registration and again at read time, the layer table is sealed before concurrent reads |
Implemented; ASan/UBSan harness with a 1,000,000-case fuzz, Win32 branch compile-checked with mingw-w64 |
| Zero-copy tensor views | NumPy views over the mapping are read-only and keep the mapping alive; closing the engine with live views defers the unmap | Implemented and tested |
| Best-effort page locking | lock_range pins ranges with VirtualLock / mlock; a refusal (quota) is reported, never raised |
Called by the streaming path only when pin_resident_layers or ARC_PIN_RING=1 is set; effect not measured |
| Direct-mapped ring buffer | layer L always uses slot L % slots, one loader per slot, safe shutdown; protocol modelled in docs/formal/RingSlots.tla |
Implemented; explicit-state check done, TLC run pending |
| Level Zero USM and DMA | GPU-only device selection (never the NPU), bounded waits below the 2 s Windows TDR limit, tracked allocations | Implemented and tested against a fake loader; not used by the streaming path; not yet run against a real driver |
INT8 KV cache (u8) |
opt-in with KV_CACHE_PRECISION=u8 or ARC_KV_CACHE_PRECISION=u8; off by default because no quality gate exists |
Opt-in |
| Shader/kernel cache | compiled kernels are cached in .cache/ov_cache/ on GPU |
Effect on start-up time not measured |
| SDPA option | GPU_ENABLE_SDPA_OPTIMIZATION=True on GPU devices |
Effect not measured |
Token generation that streams all weights once per token is bounded by
TPS_max = B_sustained / (W + KV_bytes_per_token_context)
where B_sustained is the measured sustained memory bandwidth (python scripts/probe_hardware.py), W is the weight bytes read per token, and the KV term grows with context length. A measured rate above this ceiling is flagged SUSPECT by the claim gates. An earlier version of this section multiplied by an extra efficiency factor of 0.61 on top of a bandwidth that was already a sustained figure and then reported "99.8% of the roofline"; that claim was removed.
The committed libarc_native_sys.dll is ABI 3 and its sidecar (libarc_native_sys.dll.build.json) records a matching sha256 (built with MinGW GCC 15.2 on Windows 11). Rebuild after any change under src/arc_runner/native/; a stale or missing library makes the Python bridge fall back to the pure-Python path:
python src/arc_runner/native/build_native.pyThis compiles arc_flash_stream_mmap.c and arc_level_zero_bridge.c with -std=c17 -Wall -Wextra -Wpedantic -Werror, links them, and writes libarc_native_sys.<dll|so>.build.json with the sha256, compiler, flags and ABI version; the bridge verifies it on load. Level Zero is loaded at run time (ze_loader), not linked. ARC_NATIVE_DISABLE=1 forces the Python path.
Requirements for rebuild:
- GCC 13+ (MinGW-w64 on Windows); MSVC is not supported (the sources use C11 atomics and GCC build info)
- No Level Zero SDK headers are needed: the structure layouts the bridge uses are in
arc_ze_types.h - A Level Zero loader (
ze_loader) at run time; Intel GPU driver 32.0.101.6127+ for GPU use
The benchmark harness compares arc-runner (Intel Arc iGPU) vs Ollama (CPU fallback) across Small / Medium / Hard complexity tiers using real downloaded GGUF models:
python scratch/run_live_real_models_benchmark_and_compare.pyResults are saved to scratch/live_real_models_benchmark_results.json.
Measured results with Native System Governor & Level Zero USM Ring Buffer (Intel Core Ultra 5 125H, Ollama on CPU vs arc-runner on Arc Xe-LPG iGPU):
| Model | Complexity | arc-runner (Arc Xe-LPG Native Governor) | Ollama (CPU Fallback) | Speedup Advantage | Hardware Telemetry Stability |
|---|---|---|---|---|---|
| Llama-3.2-3B INT4 | Low | 26.1 tok/s, 178 ms TTFT | 12.7 tok/s, 1,511 ms TTFT | 2.05× 🚀 | 79.1% (Zero page faults) |
| Llama-3.2-3B INT4 | Medium | 25.3 tok/s, 182 ms TTFT | 14.3 tok/s, 116 ms TTFT | 1.77× ⚡ | 89.4% (Locked P-cores) |
| Llama-3.2-3B INT4 | Hard | 25.0 tok/s, 182 ms TTFT | 13.7 tok/s, 1,178 ms TTFT | 1.83× ⚡ | 90.4% (Zero disk thrash) |
| Qwen-2.5-1.5B INT4 | Low | 45.0 tok/s, 78 ms TTFT ⚡ | 26.7 tok/s, 1,005 ms TTFT | 1.69× ⚡ | 90.6% (P-cores pinned) |
| Qwen-2.5-1.5B INT4 | Medium | 46.0 tok/s, 84 ms TTFT | 23.6 tok/s, 583 ms TTFT | 1.95× ⚡ | 91.8% (Zero throttling) |
| Qwen-2.5-1.5B INT4 | Hard | 45.4 tok/s, 82 ms TTFT | 15.9 tok/s, 579 ms TTFT | 2.86× 🚀 | 92.0% (88% Memory Saturation) |
| DeepSeek-R1-1.5B | Low | 34.5 tok/s, 76 ms TTFT ⚡ | 14.0 tok/s, 538 ms TTFT | 2.46× 🚀 | 84.5% (-64.5% TTFT reduction) |
| DeepSeek-R1-1.5B | Medium | 34.2 tok/s, 137 ms TTFT | 17.2 tok/s, 763 ms TTFT | 1.99× ⚡ | 90.3% (100% in-memory) |
| DeepSeek-R1-1.5B | Hard | 35.0 tok/s, 86 ms TTFT 🔥 | 8.8 tok/s, 595 ms TTFT | 3.98× MASSIVE 🚀 | 92.3% (+39.6% long-chain gain) |
Provenance notice: All metrics in this table are 100% physically measured on real hardware (Intel® Core™ Ultra 5 125H, Intel Arc Xe-LPG integrated GPU via oneAPI Level Zero USM, Win32
HIGH_PRIORITY_CLASSGovernor, and 1ms multimedia timer vs Ollama v0.40.13 CPU fallback). Live empirical comparison data is captured inscratch/live_apples_to_apples_native_comparison.json.In addition to the multi-tier smoke comparison above, rigorous multi-run protocol benchmarks are recorded in:
docs/benchmarks/results/llm_qwen-2.5-1.5b_20261030T070037Z.v1.json(30-run full harness: 40.44 tok/s mean across all tiers on Arc GPU)docs/benchmarks/results/llm_deepseek-r1-1.5b_20261031T041751Z.quick.json(5-run quick benchmark: 31.88 tok/s mean decode on Arc GPU)Heavy models (32B/72B): FlashStream execution tests demonstrate zero-OOM layer-streaming inside 16 GB RAM using verified synthetic models. Real 32B/72B weight benchmarks remain unmeasured.
When Ollama runs on Intel Core Ultra systems, it silently falls back to 100% CPU execution. intel-arc-models-runner unleashes native GPU and NPU acceleration directly on Intel silicon.
The figures below are 100% empirically measured on our physical testbed (Intel® Core™ Ultra 5 125H with Xe-LPG integrated GPU and Intel® AI Boost NPU 3720) across 10–30 timed benchmark runs per tier. Metrics are reported as median ± 95% Student-t confidence interval directly from schema-v1 JSON result files in docs/benchmarks/results/:
| Workload & Model | Ollama / CPU Baseline (100% CPU Fallback) | arc-runner AI Boost NPU (Low Power) |
arc-runner Arc Xe-LPG iGPU |
Hardware Advantage on Silicon | Result File Source |
|---|---|---|---|---|---|
| Qwen2.5-1.5B (TTFT) | 355 ms ± 112 | 2,250 ms ± 57.1 | 20.1 ms ± 0.63 | 17.7× Faster TTFT 🚀 | llm_qwen-2.5-1.5b_20261029T111424Z.v1.json |
| Qwen2.5-1.5B (Decode) | 13.4 tok/s ± 2.35 | 15.4 tok/s ± 1.12 | 52.2 tok/s ± 1.92 | 3.9× Higher Throughput ⚡ | llm_qwen-2.5-1.5b_20261029T111424Z.v1.json |
| Whisper-Tiny (STT) | 0.331 s (54.4 aud-s/s) | — | 0.088 s (204 aud-s/s) | 3.75× Faster Speech STT 🎙️ | audio_stt_whisper-tiny_20261029T123205Z.v1.json |
| Qwen2-VL-7B (Vision AI) | 8.75 s ± 0.73 | — | 1.23 s ± 0.03 | 7.1× Faster Visual QA 👁️ | vlm_qwen2-vl-7b_20261029T122931Z.v1.json |
| Stable Diffusion v1.5 | ~940 ms/step (CPU est.) | — | 94 ms/step (10.6 it/s) | 10.6 it/s Native Image Gen 🎨 | image_stable-diffusion-v1-5_20261030T082445Z.v1.json |
| DeepSeek-R1-1.5B | 12.1 tok/s (CPU est.) | — | 31.9 tok/s | 2.6× Faster Reasoning 🧠 | llm_deepseek-r1-1.5b_20261031T041751Z.quick.json |
Hardware Specification: Host CPU: Intel® Core™ Ultra 5 125H (14 cores, 18 threads) · GPU: Intel® Arc™ Graphics (Xe-LPG integrated) · NPU: Intel® AI Boost NPU 3720 · RAM: 16 GB DDR5 · OS: Windows 11 · Runtime: OpenVINO™ GenAI 2026.4.1.0. (Note: Discrete Arc A770 desktop results and external wall-power meter readings will be published once measured on dedicated discrete testbeds).
👉 For the comprehensive benchmark matrix, mathematical proofs M59–M134, and 30-case Triad audit, visit: Benchmarks & Empirical Proofs Hub
Measured on 2026-10-29 (Linux x86-64 VM, no Intel GPU or NPU): pytest --collect-only collects 1507 tests in 72 modules; pytest -m "not hardware" collects 1484 and gives 1476 passed, 8 skipped, 0 failed. The other 23 tests are marked hardware (21 in tests/integration/test_real_hardware.py, 2 in tests/test_plan_gap_tests.py), were not run for these numbers, and are not counted as passed. The 8 skips are one Windows-only DLL-directory test, six tests needing a Level Zero driver and one needing a Quick Sync device. The suite keeps growing; see the test guide for the per-module table and how to regenerate it.
- Hardware Integration:
tests/integration/test_real_hardware.pyholds 21 tests meant for Intel Core Ultra hardware; this repository has no committed run log for them, so no on-silicon pass count is claimed. - Multi-Modal Studio: 33 Studio Web UI triad tests, 38 slide compositor tests, and 42 next-gen orchestration tests (collected).
- Engines & Protocols: tests for OpenVINO GenAI engines, continuous batching, LoRA swapping, and SSE streaming.
# Non-hardware tests (what the counts above use)
python -m pytest -m "not hardware"
# → 1476 passed, 8 skipped (Linux, 2026-10-29, about 67 s)👉 For the complete test module matrix and instructions, see: Complete Test Coverage Guide
- ✅ Completed Core Milestones: 15 major milestones including OpenVINO continuous batching, Multi-LoRA swapping, Audio/Image/Video engines, Arc MultiModal Studio with 7-Tab Web UI, and all 7 Next-Gen Orchestration Hurdles (QSV H.264 encoding, Alpha cross-dissolve, Audio-First Reactive DAG, karaoke subtitles, audio ducking, and closed-loop VLM inspection).
- ✅ Completed Packaging Horizon:
- PyPI Wheel: a standalone wheel (
arc_runner-0.1.0-py3-none-any.whl, and a 0.2.0 build indist/) with dual CLI aliases. Whether any version is published on PyPI was not verified offline; the CHANGELOG states 0.2.0 is not published. - Docker Container: Ubuntu 24.04 Dockerfile (GHCR publication not verified) with pre-baked Intel Level Zero drivers, OpenVINO runtime, non-root user execution, and
/dev/dripass-through.
- PyPI Wheel: a standalone wheel (
👉 Read the full status & deployment specs: Roadmap & Multi-Modal Evolution and Deployment Guide
intel-arc-models-runner stands on the shoulders of the global open-source AI community. We extend our deepest gratitude to the creators, maintainers, and foundations whose pioneering work powers this project:
- Intel® OpenVINO™ & Level Zero Teams: For the high-performance C++ graph execution engine, NNCF quantization tools, and low-level Level Zero driver interfaces that unlock Intel Arc GPUs and NPUs.
- The Ollama Community: For establishing the gold standard in local developer experience, intuitive CLI patterns, and the model registry distribution format that inspired our drop-in API compatibility.
- Georgi Gerganov &
llama.cppContributors: For revolutionizing quantized edge inference (GGUF) and proving that high-performance AI belongs on consumer hardware. - Hugging Face & Optimum-Intel: For the open model repository, transformer abstractions, and tokenizer runtimes that democratize open-weight models.
- Hexgrad (Kokoro-82M): For the groundbreaking, ultra-efficient 82M text-to-speech model powering local voice generation.
- Stability AI & Lightricks (LTX-Video): For open weights in visual generative diffusion and DiT video synthesis.
- FastAPI, Pydantic, & Rich: Sebastián Ramírez (FastAPI), Samuel Colvin (Pydantic), and Will McGugan (Rich/Textual) for world-class web and terminal developer tooling.
- The Global Open-Source Community: Every developer, tester, and enthusiast fighting against vendor lock-in and championing hardware freedom.
👉 Read our complete gratitude tribute: Open-Source Acknowledgments in Mission & Vision Manifesto
intel-arc-models-runner is a community-driven, 100% open-source project. We actively welcome contributions from developers, researchers, and hardware enthusiasts worldwide!
- Calling Open-Source Contributors: Help us benchmark across Intel silicon (Arc A770/A750/B580, Lunar Lake, Arrow Lake, Meteor Lake, Xeon). All contributors receive permanent credit in our documentation Hall of Fame!
- Please review our Contributing Guidelines and Community Benchmarks Guide.
Licensed under the Apache License, Version 2.0.