Skip to content

test[notask]: overlay qvac-fabric onto qwen3vl CPU-repack branch (fabric #178)#3012

Closed
olyasir wants to merge 2 commits into
mainfrom
feat/qwen3vl-cpu-repack-fabric-overlay
Closed

test[notask]: overlay qvac-fabric onto qwen3vl CPU-repack branch (fabric #178)#3012
olyasir wants to merge 2 commits into
mainfrom
feat/qwen3vl-cpu-repack-fabric-overlay

Conversation

@olyasir

@olyasir olyasir commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Phase A of the fabric-change rollout for the
Qwen3-VL CPU vision-encoder speedup (q8_0 weight repack). This wires the
fabric branch into the monorepo via a shared overlay port so CI validates it
end-to-end before anything is published to the registry.

Companion fabric PR: tetherto/qvac-fabric-llm.cpp#178 (q8_0 CPU weight repack
in mtmd/clip → ~1807 ms → ~1114 ms on Pixel 9 Pro, bit-identical).

Changes

  • New shared overlay port packages/ports/qvac-fabric/ — copied from the
    registry port, with portfile.cmake re-pinned to the fabric branch commit
    (a3bc3d8d…, PR Adding compiler check to the prebuild step on macOS #178) via vcpkg_from_github REF+SHA512. Version unchanged
    (9341.1.0); the overlay shadows only qvac-fabric.
  • "overlay-ports": ["../ports"] added to every fabric consumer:
    llm-llamacpp, embed-llamacpp, translation-nmtcpp, ocr-ggml,
    classification-ggml, vla-ggml. No baseline bump; registry untouched.

Not for merge to main as-is

This is a test overlay (Phase A). Once #178 merges and a fabric version is
cut in the registry (Phase B), revert the overlay port + ../ports entries and
bump each consumer to the published version. Until then this PR is for CI
validation
of the fabric change across all consumers.

Note: the overlay SHA512 was computed from the branch archive; if the first CI
fetch reports a different hash, I'll update it.

Phase A of the fabric-change rollout (docs/fabric-change-rollout.md): add a
shared overlay port at packages/ports/qvac-fabric pinning the fabric branch
commit for PR tetherto/qvac-fabric-llm.cpp#178 (q8_0 CPU weight repack in
mtmd/clip), and wire "overlay-ports": ["../ports"] into every fabric consumer
so CI builds the change end-to-end.

The registry is untouched and no baseline is bumped — the overlay shadows only
qvac-fabric (version unchanged at 9341.1.0). Once #178 merges and a fabric
version is published, revert this overlay and bump each consumer to the new
version.
@olyasir olyasir requested review from a team as code owners July 2, 2026 07:28
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Review Status

Current Status: ❌ PENDING
Approvals so far: none

Pending reviews: Needs 1 Management or Team Lead, and 1 more from Management, Team Lead, or Member.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

VLM Matrix Benchmark

Run #216full report

No VLM matrix logs found for run #216.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

VLM Matrix Benchmark

Run #215full report

No VLM matrix logs found for run #215.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

VLM Matrix Benchmark

Run #217full report

VLM Matrix — several-sources / cognitive (run #217)

Mode: several sources (engine varies; model fixed) · Engine: addon

Preset: cognitive (task set + samples per leg)

one fixed model across inference engines · quality = lmms-eval (VQA / ANLS / relaxed / MC), equal-weight mean across tasks.

1 · Highlights

Inference engines on the same model: addon@baseline, addon@candidate.

Quality — overall % per source

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 46.7 46.7
linux · CPU 46.7 46.7
macmini · CPU 46.7 46.7
macos · CPU 46.7 46.7
windows · CPU 46.7 46.7

Speed — mmproj-encode ms per source (lower = faster)

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 14448 15328
linux · CPU 5819.6 5862.4
macmini · CPU 2433.3 1575.3
macos · CPU 1564.1 1015.0
windows · CPU 798.5 813.8

2 · Details

Sources — resolved versions

Source Resolved version
addon@baseline npm:0.31.0
addon@candidate git:9dd01e771b25ee492adce5631ea669b8e3763ac9

Models & origins (Source = Registry / HF / S3 / URL · pinned commits)

Cell main model mmproj
addon@baseline Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0
addon@candidate Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0

Provenance — hardware & software

linux · cpu (runner ubuntu-latest)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.0 · bare: v1.30.0
  • os: Ubuntu 24.04.4 LTS x86_64
  • cpu: INTEL(R) XEON(R) PLATINUM 8573C (4 cores)
  • ram: 15Gi

macmini · cpu (runner mac-mini-m4-gpu)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.2 · bare: v1.30.0
  • os: macOS 15.3.2 arm64
  • cpu: Apple M4 (10 cores)
  • ram: 16 GB

macos · cpu (runner macos-15-xlarge)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.0 · bare: v1.30.0
  • os: macOS 15.7.7 arm64
  • cpu: Apple M2 Pro (Virtual) (5 cores)
  • ram: 14 GB

windows · cpu (runner qvac-win25-x64)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.3 · bare: v1.30.0
  • os: Microsoft Windows Server 2025 Standard x86_64
  • cpu: Intel(R) Xeon(R) Gold 5412U (48 cores)
  • ram: 128 GB

iphone17pro — Apple iPhone 17 Pro (AWS Device Farm)

  • engine: @qvac/llm-llamacpp addon (published prebuild)

Quality (%)

Config host textvqa vizwiz gqa docvqa ai2d Overall %
addon@baseline · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7

Quality by task (% — higher better, mean across platforms; one column per source)

Task addon@candidate addon@baseline
TextVQA — read text in natural photos 60.0 60.0
VizWiz — photo questions 60.0 60.0
GQA — compositional scene reasoning 40.0 40.0
DocVQA — document understanding (ANLS) 53.3 53.3
AI2D — science-diagram multiple choice 20.0 20.0

Speed

Config host n err mmproj enc (ms) tiles TTFT (ms) encode TPS decode TPS gen (ms) wall (ms)
addon@baseline · CPU iphone17pro 25 0 14448 39.7 36.6 76 14523
addon@candidate · CPU iphone17pro 25 0 15328 37.5 34.7 82 15410
addon@baseline · CPU linux 25 0 5819.6 1.0 13012 43.9 17.7 147 13160
addon@candidate · CPU linux 25 0 5862.4 1.0 13082 43.6 17.6 150 13232
addon@baseline · CPU macmini 25 0 2433.3 1.0 3597 171.0 69.8 47 3644
addon@candidate · CPU macmini 25 0 1575.3 1.0 2741 233.4 69.7 47 2788
addon@baseline · CPU macos 25 0 1564.1 1.0 2394 253.0 86.5 40 2434
addon@candidate · CPU macos 25 0 1015.0 1.0 1909 325.5 79.4 45 1955
addon@baseline · CPU windows 25 0 798.5 1.0 2026 279.6 38.5 90 2116
addon@candidate · CPU windows 25 0 813.8 1.0 2074 274.9 37.7 93 2166

mmproj enc is parsed from llama.cpp's native stderr. On mobile (Device Farm) that stream is not captured (Android logcat / iOS console), so it shows there; TTFT on mobile already includes the vision-encode + prompt-eval time and is the cross-platform proxy. encode TPS = prompt + image tokens ÷ TTFT (prefill ingest rate); decode TPS is the generation rate; gen (ms) = wall − TTFT (the response-generation/decode phase). encode TPS and gen (ms) are reported on every platform that emits token counts, where it does not.

Peak memory (RSS)

Config host device peak RSS (MB)
addon@baseline iphone17pro CPU 1673
addon@candidate iphone17pro CPU 1643
addon@baseline linux CPU 1359
addon@candidate linux CPU 1501
addon@baseline macmini CPU 2350
addon@candidate macmini CPU 2422
addon@baseline macos CPU 2351
addon@candidate macos CPU 2406
addon@baseline windows CPU 1427
addon@candidate windows CPU 1455

Peak RSS is the process high-water mark (max across measured blocks), from the runtime's getrusage — populated on desktop (Linux / macOS / Windows) and Android. A row shows only where the platform doesn't expose it.

3 · Test Results (per platform)

Platform Metric Count
iphone17pro samples run 50
iphone17pro passed (inference ok) 50
iphone17pro failed 0
linux samples run 50
linux passed (inference ok) 50
linux failed 0
macmini samples run 50
macmini passed (inference ok) 50
macmini failed 0
macos samples run 50
macos passed (inference ok) 50
macos failed 0
windows samples run 50
windows passed (inference ok) 50
windows failed 0

4 · Image samples

Task Image Resolution (W×H)
ai2d vlmx-ai2d_0.jpg 350×300
ai2d vlmx-ai2d_1.jpg 500×361
ai2d vlmx-ai2d_2.jpg 576×396
ai2d vlmx-ai2d_3.jpg 591×688
ai2d vlmx-ai2d_4.jpg 864×592
docvqa vlmx-docvqa_0.jpg 646×440
docvqa vlmx-docvqa_1.jpg 904×725
docvqa vlmx-docvqa_2.jpg 957×990
docvqa vlmx-docvqa_3.jpg 957×990
docvqa vlmx-docvqa_4.jpg 1024×834
gqa vlmx-gqa_0.jpg 500×331
gqa vlmx-gqa_1.jpg 427×640
gqa vlmx-gqa_2.jpg 640×425
gqa vlmx-gqa_3.jpg 640×428
gqa vlmx-gqa_4.jpg 640×427
textvqa vlmx-textvqa_0.jpg 1024×681
textvqa vlmx-textvqa_1.jpg 1024×768
textvqa vlmx-textvqa_2.jpg 1024×768
textvqa vlmx-textvqa_3.jpg 1024×768
textvqa vlmx-textvqa_4.jpg 1024×765
vizwiz vlmx-vizwiz_0.jpg 360×480
vizwiz vlmx-vizwiz_1.jpg 360×480
vizwiz vlmx-vizwiz_2.jpg 484×648
vizwiz vlmx-vizwiz_3.jpg 768×1024
vizwiz vlmx-vizwiz_4.jpg 768×1024

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

VLM Matrix Benchmark

Run #218full report

VLM Matrix — several-sources / cognitive (run #218)

Mode: several sources (engine varies; model fixed) · Engine: addon

Preset: cognitive (task set + samples per leg)

one fixed model across inference engines · quality = lmms-eval (VQA / ANLS / relaxed / MC), equal-weight mean across tasks.

1 · Highlights

Inference engines on the same model: addon@baseline, addon@candidate.

Quality — overall % per source

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 46.7 46.7
linux · CPU 46.7 46.7
macmini · CPU 46.7 46.7
macos · CPU 46.7 46.7
s25 · CPU 46.7
windows · CPU 46.7 46.7

Speed — mmproj-encode ms per source (lower = faster)

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 14983 14389
linux · CPU 5751.1 5756.6
macmini · CPU 2402.4 1542.1
macos · CPU 1672.2 1079.8
s25 · CPU 3052
windows · CPU 735.3 735.4

2 · Details

Sources — resolved versions

Source Resolved version
addon@baseline npm:0.31.0
addon@candidate git:9dd01e771b25ee492adce5631ea669b8e3763ac9

Models & origins (Source = Registry / HF / S3 / URL · pinned commits)

Cell main model mmproj
addon@baseline Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0
addon@candidate Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0

Provenance — hardware & software

linux · cpu (runner ubuntu-latest)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.1 · bare: v1.30.0
  • os: Ubuntu 24.04.4 LTS x86_64
  • cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (4 cores)
  • ram: 15Gi

macmini · cpu (runner mac-mini-m4-gpu)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.2 · bare: v1.30.0
  • os: macOS 15.3.2 arm64
  • cpu: Apple M4 (10 cores)
  • ram: 16 GB

macos · cpu (runner macos-15-xlarge)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.0 · bare: v1.30.0
  • os: macOS 15.7.7 arm64
  • cpu: Apple M2 Pro (Virtual) (5 cores)
  • ram: 14 GB

windows · cpu (runner qvac-win25-x64)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.3 · bare: v1.30.0
  • os: Microsoft Windows Server 2025 Standard x86_64
  • cpu: Intel(R) Xeon(R) Gold 5412U (48 cores)
  • ram: 128 GB

s25 — Samsung Galaxy S25 Ultra (AWS Device Farm)

  • device: SM-S938U1 · Android 15 · arm64-v8a
  • ram: 10.9 GB · gpu: Adreno (Vulkan)
  • engine: @qvac/llm-llamacpp addon (published prebuild)

iphone17pro — Apple iPhone 17 Pro (AWS Device Farm)

  • engine: @qvac/llm-llamacpp addon (published prebuild)

Quality (%)

Config host textvqa vizwiz gqa docvqa ai2d Overall %
addon@baseline · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU s25 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7

Quality by task (% — higher better, mean across platforms; one column per source)

Task addon@candidate addon@baseline
TextVQA — read text in natural photos 60.0 60.0
VizWiz — photo questions 60.0 60.0
GQA — compositional scene reasoning 40.0 40.0
DocVQA — document understanding (ANLS) 53.3 53.3
AI2D — science-diagram multiple choice 20.0 20.0

Speed

Config host n err mmproj enc (ms) tiles TTFT (ms) encode TPS decode TPS gen (ms) wall (ms)
addon@baseline · CPU iphone17pro 25 0 14983 38.3 34.3 81 15063
addon@candidate · CPU iphone17pro 25 0 14389 39.9 36.2 77 14465
addon@baseline · CPU linux 25 0 5751.1 1.0 12686 45.0 20.1 131 12817
addon@candidate · CPU linux 25 0 5756.6 1.0 12682 45.0 20.1 131 12813
addon@baseline · CPU macmini 25 0 2402.4 1.0 3531 173.8 70.4 47 3578
addon@candidate · CPU macmini 25 0 1542.1 1.0 2662 236.9 70.3 47 2709
addon@baseline · CPU macos 25 0 1672.2 1.0 2611 231.9 70.0 48 2659
addon@candidate · CPU macos 25 0 1079.8 1.0 2016 305.8 73.0 50 2065
addon@baseline · CPU s25 25 0 3052 207.7 42.0 78 3130
addon@baseline · CPU windows 25 0 735.3 1.0 1816 309.7 40.6 89 1905
addon@candidate · CPU windows 25 0 735.4 1.0 1816 309.9 40.3 91 1907

mmproj enc is parsed from llama.cpp's native stderr. On mobile (Device Farm) that stream is not captured (Android logcat / iOS console), so it shows there; TTFT on mobile already includes the vision-encode + prompt-eval time and is the cross-platform proxy. encode TPS = prompt + image tokens ÷ TTFT (prefill ingest rate); decode TPS is the generation rate; gen (ms) = wall − TTFT (the response-generation/decode phase). encode TPS and gen (ms) are reported on every platform that emits token counts, where it does not.

Peak memory (RSS)

Config host device peak RSS (MB)
addon@baseline iphone17pro CPU 1663
addon@candidate iphone17pro CPU 1662
addon@baseline linux CPU 1356
addon@candidate linux CPU 1372
addon@baseline macmini CPU 2348
addon@candidate macmini CPU 2439
addon@baseline macos CPU 2339
addon@candidate macos CPU 2392
addon@baseline s25 CPU 2417
addon@baseline windows CPU 1429
addon@candidate windows CPU 1457

Peak RSS is the process high-water mark (max across measured blocks), from the runtime's getrusage — populated on desktop (Linux / macOS / Windows) and Android. A row shows only where the platform doesn't expose it.

3 · Test Results (per platform)

Platform Metric Count
iphone17pro samples run 50
iphone17pro passed (inference ok) 50
iphone17pro failed 0
linux samples run 50
linux passed (inference ok) 50
linux failed 0
macmini samples run 50
macmini passed (inference ok) 50
macmini failed 0
macos samples run 50
macos passed (inference ok) 50
macos failed 0
s25 samples run 25
s25 passed (inference ok) 25
s25 failed 0
windows samples run 50
windows passed (inference ok) 50
windows failed 0

4 · Image samples

Task Image Resolution (W×H)
ai2d vlmx-ai2d_0.jpg 350×300
ai2d vlmx-ai2d_1.jpg 500×361
ai2d vlmx-ai2d_2.jpg 576×396
ai2d vlmx-ai2d_3.jpg 591×688
ai2d vlmx-ai2d_4.jpg 864×592
docvqa vlmx-docvqa_0.jpg 646×440
docvqa vlmx-docvqa_1.jpg 904×725
docvqa vlmx-docvqa_2.jpg 957×990
docvqa vlmx-docvqa_3.jpg 957×990
docvqa vlmx-docvqa_4.jpg 1024×834
gqa vlmx-gqa_0.jpg 500×331
gqa vlmx-gqa_1.jpg 427×640
gqa vlmx-gqa_2.jpg 640×425
gqa vlmx-gqa_3.jpg 640×428
gqa vlmx-gqa_4.jpg 640×427
textvqa vlmx-textvqa_0.jpg 1024×681
textvqa vlmx-textvqa_1.jpg 1024×768
textvqa vlmx-textvqa_2.jpg 1024×768
textvqa vlmx-textvqa_3.jpg 1024×768
textvqa vlmx-textvqa_4.jpg 1024×765
vizwiz vlmx-vizwiz_0.jpg 360×480
vizwiz vlmx-vizwiz_1.jpg 360×480
vizwiz vlmx-vizwiz_2.jpg 484×648
vizwiz vlmx-vizwiz_3.jpg 768×1024
vizwiz vlmx-vizwiz_4.jpg 768×1024

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

VLM Matrix Benchmark

Run #217full report

VLM Matrix — several-sources / cognitive (run #217)

Mode: several sources (engine varies; model fixed) · Engine: addon

Preset: cognitive (task set + samples per leg)

one fixed model across inference engines · quality = lmms-eval (VQA / ANLS / relaxed / MC), equal-weight mean across tasks.

1 · Highlights

Inference engines on the same model: addon@baseline, addon@candidate.

Quality — overall % per source

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 46.7 46.7
linux · CPU 46.7 46.7
macmini · CPU 46.7 46.7
macos · CPU 46.7 46.7
pixel9 · CPU 46.7 46.7
s25 · CPU 46.7 46.7
windows · CPU 46.7 46.7

Speed — mmproj-encode ms per source (lower = faster)

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 14448 15328
linux · CPU 5819.6 5862.4
macmini · CPU 2433.3 1575.3
macos · CPU 1564.1 1015.0
pixel9 · CPU 8241 8213
s25 · CPU 3068 3016
windows · CPU 798.5 813.8

2 · Details

Sources — resolved versions

Source Resolved version
addon@baseline npm:0.31.0
addon@candidate git:9dd01e771b25ee492adce5631ea669b8e3763ac9

Models & origins (Source = Registry / HF / S3 / URL · pinned commits)

Cell main model mmproj
addon@baseline Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0
addon@candidate Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0

Provenance — hardware & software

linux · cpu (runner ubuntu-latest)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.0 · bare: v1.30.0
  • os: Ubuntu 24.04.4 LTS x86_64
  • cpu: INTEL(R) XEON(R) PLATINUM 8573C (4 cores)
  • ram: 15Gi

macmini · cpu (runner mac-mini-m4-gpu)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.2 · bare: v1.30.0
  • os: macOS 15.3.2 arm64
  • cpu: Apple M4 (10 cores)
  • ram: 16 GB

macos · cpu (runner macos-15-xlarge)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.0 · bare: v1.30.0
  • os: macOS 15.7.7 arm64
  • cpu: Apple M2 Pro (Virtual) (5 cores)
  • ram: 14 GB

windows · cpu (runner qvac-win25-x64)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.3 · bare: v1.30.0
  • os: Microsoft Windows Server 2025 Standard x86_64
  • cpu: Intel(R) Xeon(R) Gold 5412U (48 cores)
  • ram: 128 GB

pixel9 — Google Pixel 9a (AWS Device Farm)

  • device: Pixel · Android 15 · arm64-v8a
  • ram: 7.4 GB · gpu: ?
  • engine: @qvac/llm-llamacpp addon (published prebuild)

s25 — Samsung Galaxy S25 Ultra (AWS Device Farm)

  • device: SM-S938U1 · Android 15 · arm64-v8a
  • ram: 10.9 GB · gpu: Adreno (Vulkan)
  • engine: @qvac/llm-llamacpp addon (published prebuild)

iphone17pro — Apple iPhone 17 Pro (AWS Device Farm)

  • engine: @qvac/llm-llamacpp addon (published prebuild)

Quality (%)

Config host textvqa vizwiz gqa docvqa ai2d Overall %
addon@baseline · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU pixel9 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU pixel9 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU s25 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU s25 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7

Quality by task (% — higher better, mean across platforms; one column per source)

Task addon@candidate addon@baseline
TextVQA — read text in natural photos 60.0 60.0
VizWiz — photo questions 60.0 60.0
GQA — compositional scene reasoning 40.0 40.0
DocVQA — document understanding (ANLS) 53.3 53.3
AI2D — science-diagram multiple choice 20.0 20.0

Speed

Config host n err mmproj enc (ms) tiles TTFT (ms) encode TPS decode TPS gen (ms) wall (ms)
addon@baseline · CPU iphone17pro 25 0 14448 39.7 36.6 76 14523
addon@candidate · CPU iphone17pro 25 0 15328 37.5 34.7 82 15410
addon@baseline · CPU linux 25 0 5819.6 1.0 13012 43.9 17.7 147 13160
addon@candidate · CPU linux 25 0 5862.4 1.0 13082 43.6 17.6 150 13232
addon@baseline · CPU macmini 25 0 2433.3 1.0 3597 171.0 69.8 47 3644
addon@candidate · CPU macmini 25 0 1575.3 1.0 2741 233.4 69.7 47 2788
addon@baseline · CPU macos 25 0 1564.1 1.0 2394 253.0 86.5 40 2434
addon@candidate · CPU macos 25 0 1015.0 1.0 1909 325.5 79.4 45 1955
addon@baseline · CPU pixel9 25 0 8241 73.5 9.5 291 8532
addon@candidate · CPU pixel9 25 0 8213 71.1 9.6 287 8500
addon@baseline · CPU s25 25 0 3068 207.3 50.3 69 3138
addon@candidate · CPU s25 25 0 3016 209.2 43.1 76 3092
addon@baseline · CPU windows 25 0 798.5 1.0 2026 279.6 38.5 90 2116
addon@candidate · CPU windows 25 0 813.8 1.0 2074 274.9 37.7 93 2166

mmproj enc is parsed from llama.cpp's native stderr. On mobile (Device Farm) that stream is not captured (Android logcat / iOS console), so it shows there; TTFT on mobile already includes the vision-encode + prompt-eval time and is the cross-platform proxy. encode TPS = prompt + image tokens ÷ TTFT (prefill ingest rate); decode TPS is the generation rate; gen (ms) = wall − TTFT (the response-generation/decode phase). encode TPS and gen (ms) are reported on every platform that emits token counts, where it does not.

Peak memory (RSS)

Config host device peak RSS (MB)
addon@baseline iphone17pro CPU 1673
addon@candidate iphone17pro CPU 1643
addon@baseline linux CPU 1359
addon@candidate linux CPU 1501
addon@baseline macmini CPU 2350
addon@candidate macmini CPU 2422
addon@baseline macos CPU 2351
addon@candidate macos CPU 2406
addon@baseline pixel9 CPU 2384
addon@candidate pixel9 CPU 2401
addon@baseline s25 CPU 2418
addon@candidate s25 CPU 2420
addon@baseline windows CPU 1427
addon@candidate windows CPU 1455

Peak RSS is the process high-water mark (max across measured blocks), from the runtime's getrusage — populated on desktop (Linux / macOS / Windows) and Android. A row shows only where the platform doesn't expose it.

3 · Test Results (per platform)

Platform Metric Count
iphone17pro samples run 50
iphone17pro passed (inference ok) 50
iphone17pro failed 0
linux samples run 50
linux passed (inference ok) 50
linux failed 0
macmini samples run 50
macmini passed (inference ok) 50
macmini failed 0
macos samples run 50
macos passed (inference ok) 50
macos failed 0
pixel9 samples run 50
pixel9 passed (inference ok) 50
pixel9 failed 0
s25 samples run 50
s25 passed (inference ok) 50
s25 failed 0
windows samples run 50
windows passed (inference ok) 50
windows failed 0

4 · Image samples

Task Image Resolution (W×H)
ai2d vlmx-ai2d_0.jpg 350×300
ai2d vlmx-ai2d_1.jpg 500×361
ai2d vlmx-ai2d_2.jpg 576×396
ai2d vlmx-ai2d_3.jpg 591×688
ai2d vlmx-ai2d_4.jpg 864×592
docvqa vlmx-docvqa_0.jpg 646×440
docvqa vlmx-docvqa_1.jpg 904×725
docvqa vlmx-docvqa_2.jpg 957×990
docvqa vlmx-docvqa_3.jpg 957×990
docvqa vlmx-docvqa_4.jpg 1024×834
gqa vlmx-gqa_0.jpg 500×331
gqa vlmx-gqa_1.jpg 427×640
gqa vlmx-gqa_2.jpg 640×425
gqa vlmx-gqa_3.jpg 640×428
gqa vlmx-gqa_4.jpg 640×427
textvqa vlmx-textvqa_0.jpg 1024×681
textvqa vlmx-textvqa_1.jpg 1024×768
textvqa vlmx-textvqa_2.jpg 1024×768
textvqa vlmx-textvqa_3.jpg 1024×768
textvqa vlmx-textvqa_4.jpg 1024×765
vizwiz vlmx-vizwiz_0.jpg 360×480
vizwiz vlmx-vizwiz_1.jpg 360×480
vizwiz vlmx-vizwiz_2.jpg 484×648
vizwiz vlmx-vizwiz_3.jpg 768×1024
vizwiz vlmx-vizwiz_4.jpg 768×1024

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

VLM Matrix Benchmark

Run #219full report

VLM Matrix — several-sources / cognitive (run #219)

Mode: several sources (engine varies; model fixed) · Engine: addon

Preset: cognitive (task set + samples per leg)

one fixed model across inference engines · quality = lmms-eval (VQA / ANLS / relaxed / MC), equal-weight mean across tasks.

1 · Highlights

Inference engines on the same model: addon@baseline, addon@candidate.

Quality — overall % per source

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 46.7 46.7
linux · CPU 46.7 46.7
macmini · CPU 46.7 46.7
macos · CPU 46.7 46.7
pixel9 · CPU 46.7 46.7
s25 · CPU 46.7 46.7
windows · CPU 46.7 46.7

Speed — mmproj-encode ms per source (lower = faster)

Platform · device addon@baseline addon@candidate
iphone17pro · CPU 14432 14393
linux · CPU 6060.7 6111.3
macmini · CPU 2599.8 1709.4
macos · CPU 1649.3 1329.4
pixel9 · CPU 8117 8269
s25 · CPU 3012 3210
windows · CPU 1481.0 878.8

2 · Details

Sources — resolved versions

Source Resolved version
addon@baseline npm:0.31.0
addon@candidate git:9dd01e771b25ee492adce5631ea669b8e3763ac9

Models & origins (Source = Registry / HF / S3 / URL · pinned commits)

Cell main model mmproj
addon@baseline Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0
addon@candidate Registry · unsloth/Qwen3.5-0.8B-GGUF@6ab461498e Registry · mradermacher/Qwen3.5-0.8B-GGUF@9d48fdbc0d · mmproj-Q8_0

Provenance — hardware & software

linux · cpu (runner ubuntu-latest)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.1 · bare: v1.30.1
  • os: Ubuntu 24.04.4 LTS x86_64
  • cpu: AMD EPYC 7763 64-Core Processor (4 cores)
  • ram: 15Gi

macmini · cpu (runner mac-mini-m4-gpu)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.2 · bare: v1.30.1
  • os: macOS 15.3.2 arm64
  • cpu: Apple M4 (10 cores)
  • ram: 16 GB

macos · cpu (runner macos-15-xlarge)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.23.0 · bare: v1.30.1
  • os: macOS 15.7.7 arm64
  • cpu: Apple M2 Pro (Virtual) (5 cores)
  • ram: 14 GB

windows · cpu (runner qvac-win25-x64)

  • addon: @qvac/llm-llamacpp@0.31.0 (published prebuild)
  • git: 9dd01e771b25ee492adce5631ea669b8e3763ac9 (ref feat/qwen3vl-cpu-repack-fabric-overlay)
  • node: v22.22.3 · bare: v1.30.1
  • os: Microsoft Windows Server 2025 Standard x86_64
  • cpu: Intel(R) Xeon(R) Gold 5412U (48 cores)
  • ram: 128 GB

pixel9 — Google Pixel 9a (AWS Device Farm)

  • device: Pixel · Android 15 · arm64-v8a
  • ram: 7.4 GB · gpu: ?
  • engine: @qvac/llm-llamacpp addon (published prebuild)

s25 — Samsung Galaxy S25 Ultra (AWS Device Farm)

  • device: SM-S938U1 · Android 15 · arm64-v8a
  • ram: 10.9 GB · gpu: Adreno (Vulkan)
  • engine: @qvac/llm-llamacpp addon (published prebuild)

iphone17pro — Apple iPhone 17 Pro (AWS Device Farm)

  • engine: @qvac/llm-llamacpp addon (published prebuild)

Quality (%)

Config host textvqa vizwiz gqa docvqa ai2d Overall %
addon@baseline · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU iphone17pro 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU linux 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macmini 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU macos 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU pixel9 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU pixel9 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU s25 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU s25 60.0 60.0 40.0 53.3 20.0 46.7
addon@baseline · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7
addon@candidate · CPU windows 60.0 60.0 40.0 53.3 20.0 46.7

Quality by task (% — higher better, mean across platforms; one column per source)

Task addon@candidate addon@baseline
TextVQA — read text in natural photos 60.0 60.0
VizWiz — photo questions 60.0 60.0
GQA — compositional scene reasoning 40.0 40.0
DocVQA — document understanding (ANLS) 53.3 53.3
AI2D — science-diagram multiple choice 20.0 20.0

Speed

Config host n err mmproj enc (ms) tiles TTFT (ms) encode TPS decode TPS gen (ms) wall (ms)
addon@baseline · CPU iphone17pro 25 0 14432 39.7 36.1 77 14509
addon@candidate · CPU iphone17pro 25 0 14393 39.9 36.1 76 14469
addon@baseline · CPU linux 25 0 6060.7 1.0 13148 43.3 25.6 112 13261
addon@candidate · CPU linux 25 0 6111.3 1.0 13229 43.2 25.4 110 13340
addon@baseline · CPU macmini 25 0 2599.8 1.0 3926 156.2 71.2 47 3974
addon@candidate · CPU macmini 25 0 1709.4 1.0 2994 208.3 72.4 47 3040
addon@baseline · CPU macos 25 0 1649.3 1.0 2560 237.2 80.4 43 2603
addon@candidate · CPU macos 25 0 1329.4 1.0 2476 245.1 64.3 54 2530
addon@baseline · CPU pixel9 25 0 8117 73.0 9.4 286 8404
addon@candidate · CPU pixel9 25 0 8269 73.0 10.1 268 8537
addon@baseline · CPU s25 25 0 3012 209.9 47.0 73 3085
addon@candidate · CPU s25 25 0 3210 196.7 39.1 86 3296
addon@baseline · CPU windows 25 0 1481.0 1.0 4326 151.0 22.5 183 4510
addon@candidate · CPU windows 25 0 878.8 1.0 2249 261.0 34.8 125 2375

mmproj enc is parsed from llama.cpp's native stderr. On mobile (Device Farm) that stream is not captured (Android logcat / iOS console), so it shows there; TTFT on mobile already includes the vision-encode + prompt-eval time and is the cross-platform proxy. encode TPS = prompt + image tokens ÷ TTFT (prefill ingest rate); decode TPS is the generation rate; gen (ms) = wall − TTFT (the response-generation/decode phase). encode TPS and gen (ms) are reported on every platform that emits token counts, where it does not.

Peak memory (RSS)

Config host device peak RSS (MB)
addon@baseline iphone17pro CPU 1644
addon@candidate iphone17pro CPU 1652
addon@baseline linux CPU 1356
addon@candidate linux CPU 1540
addon@baseline macmini CPU 2361
addon@candidate macmini CPU 2467
addon@baseline macos CPU 2352
addon@candidate macos CPU 2411
addon@baseline pixel9 CPU 2369
addon@candidate pixel9 CPU 2400
addon@baseline s25 CPU 2420
addon@candidate s25 CPU 2426
addon@baseline windows CPU 1430
addon@candidate windows CPU 1471

Peak RSS is the process high-water mark (max across measured blocks), from the runtime's getrusage — populated on desktop (Linux / macOS / Windows) and Android. A row shows only where the platform doesn't expose it.

3 · Test Results (per platform)

Platform Metric Count
iphone17pro samples run 50
iphone17pro passed (inference ok) 50
iphone17pro failed 0
linux samples run 50
linux passed (inference ok) 50
linux failed 0
macmini samples run 50
macmini passed (inference ok) 50
macmini failed 0
macos samples run 50
macos passed (inference ok) 50
macos failed 0
pixel9 samples run 50
pixel9 passed (inference ok) 50
pixel9 failed 0
s25 samples run 50
s25 passed (inference ok) 50
s25 failed 0
windows samples run 50
windows passed (inference ok) 50
windows failed 0

4 · Image samples

Task Image Resolution (W×H)
ai2d vlmx-ai2d_0.jpg 350×300
ai2d vlmx-ai2d_1.jpg 500×361
ai2d vlmx-ai2d_2.jpg 576×396
ai2d vlmx-ai2d_3.jpg 591×688
ai2d vlmx-ai2d_4.jpg 864×592
docvqa vlmx-docvqa_0.jpg 646×440
docvqa vlmx-docvqa_1.jpg 904×725
docvqa vlmx-docvqa_2.jpg 957×990
docvqa vlmx-docvqa_3.jpg 957×990
docvqa vlmx-docvqa_4.jpg 1024×834
gqa vlmx-gqa_0.jpg 500×331
gqa vlmx-gqa_1.jpg 427×640
gqa vlmx-gqa_2.jpg 640×425
gqa vlmx-gqa_3.jpg 640×428
gqa vlmx-gqa_4.jpg 640×427
textvqa vlmx-textvqa_0.jpg 1024×681
textvqa vlmx-textvqa_1.jpg 1024×768
textvqa vlmx-textvqa_2.jpg 1024×768
textvqa vlmx-textvqa_3.jpg 1024×768
textvqa vlmx-textvqa_4.jpg 1024×765
vizwiz vlmx-vizwiz_0.jpg 360×480
vizwiz vlmx-vizwiz_1.jpg 360×480
vizwiz vlmx-vizwiz_2.jpg 484×648
vizwiz vlmx-vizwiz_3.jpg 768×1024
vizwiz vlmx-vizwiz_4.jpg 768×1024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant