# ParetoPilot Arm64 Capacity Receipt

> **SUPPLEMENTARY EVIDENCE · CANONICAL v1.1 UNCHANGED**

This receipt asks a separate deployment question: after the frozen v1.1 candidate decision, which observed server-slot and client-concurrency point best satisfies the predeclared capacity gates?

**Scope:** A bounded fixed-concurrency study on one native Arm64 runner. It compares two predeclared deployment candidates and does not change the frozen canonical v1.1 recommendation.

`P` = llama-server slots · `C` = simultaneous clients · `TTFT` = time to first token · `E2E` = end-to-end latency · `RSS` = peak resident memory · `SLO` = the predeclared service-level limit.

**Decision boundary:** this receipt does not choose between Q8 and Q4. Choose the model candidate first, then use its row here to select a serving point.

## Selected operating points

| Candidate | Role | Selected point | Median generation rate | Generation rate vs P1/C1 |
| --- | --- | --- | ---: | ---: |
| Q8 generic reference | Canonical latency choice | P4 / C4 | 84.94 tok/s | +142.0% |
| Q4 with KleidiAI and 512-token micro-batch | Measured resource alternative | P4 / C4 | 90.67 tok/s | +176.3% |

Selection maximizes the median generated-token rate only among cells where both counterbalanced passes meet the load SLO and stability limits, the quality gate passes, and peak server RSS stays within the predeclared limit. Points within the 1% objective tolerance use lower observed-p95 E2E, lower observed-p95 TTFT, lower RSS, fewer server slots, then fewer clients.

## Capacity envelope — Q8 generic reference

| Server slots | C1 | C2 | C4 |
| ---: | --- | --- | --- |
| P1 | **PASS · 35.10 tok/s**<br>E2E p95 1883.3 ms<br>TTFT p95 224.8 ms | **FAIL · 35.26 tok/s**<br>E2E p95 3678.4 ms<br>TTFT p95 2048.6 ms | **FAIL · 35.14 tok/s**<br>E2E p95 7347.7 ms<br>TTFT p95 5684.8 ms |
| P2 | **PASS · 35.36 tok/s**<br>E2E p95 1863.7 ms<br>TTFT p95 227.1 ms | **PASS · 38.85 tok/s**<br>E2E p95 3347.3 ms<br>TTFT p95 389.8 ms | **FAIL · 38.65 tok/s**<br>E2E p95 6669.8 ms<br>TTFT p95 3700.5 ms |
| P4 | **PASS · 35.42 tok/s**<br>E2E p95 1856.6 ms<br>TTFT p95 221.1 ms | **PASS · 37.09 tok/s**<br>E2E p95 3594.9 ms<br>TTFT p95 415.9 ms | **PASS · 84.94 tok/s**<br>E2E p95 3056.8 ms<br>TTFT p95 756.6 ms |

**Envelope result:** P4 / C4 is the best observed passing point under the fixed objective.

| Gate | Observed | Result |
| --- | ---: | --- |
| Both counterbalanced passes meet load SLO | Yes | PASS |
| Quality floor and retention | Yes | PASS |
| Peak server RSS | 3448.1 MiB / 4096.0 MiB | PASS |
| Completion rate, worst pass | 100.0% | PASS |
| Generation-rate spread | 1.3% / 15.0% | PASS |
| Observed-p95 E2E spread | 2.2% / 20.0% | PASS |

### Rejected points

| Point | Exact gate failures |
| --- | --- |
| P1 / C2 | At least one pass missed the load SLO (`one_or_more_passes_failed_load_slo`)<br>Forward pass: observed-p95 TTFT exceeded the limit (`forward:ttft_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 TTFT exceeded the limit (`reverse:ttft_ms_p95_above_maximum`) |
| P1 / C4 | At least one pass missed the load SLO (`one_or_more_passes_failed_load_slo`)<br>Forward pass: observed-p95 TTFT exceeded the limit (`forward:ttft_ms_p95_above_maximum`)<br>Forward pass: observed-p95 E2E exceeded the limit (`forward:e2e_latency_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 TTFT exceeded the limit (`reverse:ttft_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 E2E exceeded the limit (`reverse:e2e_latency_ms_p95_above_maximum`) |
| P2 / C4 | At least one pass missed the load SLO (`one_or_more_passes_failed_load_slo`)<br>Forward pass: observed-p95 TTFT exceeded the limit (`forward:ttft_ms_p95_above_maximum`)<br>Forward pass: observed-p95 E2E exceeded the limit (`forward:e2e_latency_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 TTFT exceeded the limit (`reverse:ttft_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 E2E exceeded the limit (`reverse:e2e_latency_ms_p95_above_maximum`) |

## Capacity envelope — Q4 with KleidiAI and 512-token micro-batch

| Server slots | C1 | C2 | C4 |
| ---: | --- | --- | --- |
| P1 | **PASS · 32.82 tok/s**<br>E2E p95 2090.5 ms<br>TTFT p95 170.1 ms | **FAIL · 33.24 tok/s**<br>E2E p95 3889.0 ms<br>TTFT p95 2101.2 ms | **FAIL · 32.97 tok/s**<br>E2E p95 7804.1 ms<br>TTFT p95 6009.8 ms |
| P2 | **PASS · 33.11 tok/s**<br>E2E p95 1964.4 ms<br>TTFT p95 170.8 ms | **PASS · 43.73 tok/s**<br>E2E p95 2967.0 ms<br>TTFT p95 314.6 ms | **FAIL · 43.54 tok/s**<br>E2E p95 6023.8 ms<br>TTFT p95 3231.5 ms |
| P4 | **PASS · 33.15 tok/s**<br>E2E p95 1973.6 ms<br>TTFT p95 170.2 ms | **PASS · 37.69 tok/s**<br>E2E p95 3880.7 ms<br>TTFT p95 324.9 ms | **PASS · 90.67 tok/s**<br>E2E p95 2852.6 ms<br>TTFT p95 639.9 ms |

**Envelope result:** P4 / C4 is the best observed passing point under the fixed objective.

| Gate | Observed | Result |
| --- | ---: | --- |
| Both counterbalanced passes meet load SLO | Yes | PASS |
| Quality floor and retention | Yes | PASS |
| Peak server RSS | 2031.3 MiB / 4096.0 MiB | PASS |
| Completion rate, worst pass | 100.0% | PASS |
| Generation-rate spread | 0.7% / 15.0% | PASS |
| Observed-p95 E2E spread | 0.8% / 20.0% | PASS |

### Rejected points

| Point | Exact gate failures |
| --- | --- |
| P1 / C2 | At least one pass missed the load SLO (`one_or_more_passes_failed_load_slo`)<br>Forward pass: observed-p95 TTFT exceeded the limit (`forward:ttft_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 TTFT exceeded the limit (`reverse:ttft_ms_p95_above_maximum`) |
| P1 / C4 | At least one pass missed the load SLO (`one_or_more_passes_failed_load_slo`)<br>Forward pass: observed-p95 TTFT exceeded the limit (`forward:ttft_ms_p95_above_maximum`)<br>Forward pass: observed-p95 E2E exceeded the limit (`forward:e2e_latency_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 TTFT exceeded the limit (`reverse:ttft_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 E2E exceeded the limit (`reverse:e2e_latency_ms_p95_above_maximum`) |
| P2 / C4 | At least one pass missed the load SLO (`one_or_more_passes_failed_load_slo`)<br>Forward pass: observed-p95 TTFT exceeded the limit (`forward:ttft_ms_p95_above_maximum`)<br>Reverse pass: observed-p95 TTFT exceeded the limit (`reverse:ttft_ms_p95_above_maximum`) |

## Quality guard

| Candidate | Server slots | Score | Reference retention | Outcome stability | Result |
| --- | ---: | ---: | ---: | --- | --- |
| Q8 generic reference | 1 | 21/24 | 100.0% | Matched | PASS |
| Q8 generic reference | 2 | 21/24 | 100.0% | Matched | PASS |
| Q8 generic reference | 4 | 21/24 | 100.0% | Matched | PASS |
| Q4 with KleidiAI and 512-token micro-batch | 1 | 20/24 | 95.2% | Matched | PASS |
| Q4 with KleidiAI and 512-token micro-batch | 2 | 20/24 | 95.2% | Matched | PASS |
| Q4 with KleidiAI and 512-token micro-batch | 4 | 20/24 | 95.2% | Matched | PASS |

## Methodology

- Server slots: `1, 2, 4`.
- Simultaneous clients: `1, 2, 4`.
- Context is held at `2048` tokens per server slot; total context therefore scales with `--parallel`.
- Two mirrored forward/reverse passes: `forward` (q8-generic → q4-kleidiai-tuned; P1 → P2 → P4; C1 → C2 → C4); `reverse` (q4-kleidiai-tuned → q8-generic; P4 → P2 → P1; C4 → C2 → C1).
- Every load artifact uses the checksummed fixed prompt plan, 64 output tokens, prompt caching disabled, four warmups, and eight measured requests at each client level.
- Performance servers are restarted between configurations. GNU `time -v` captures peak RSS for each load-only 1/2/4-client sweep.
- Six additional fresh servers run the sequential 24-case deployment guard after the performance matrix, one per candidate and slot level.
- Capacity commands are compared with the frozen v1.1 deployment commands. Only `--parallel`, formula-bound `--ctx-size`, and the local port may differ.
- KleidiAI-enabled runs require the observed `CPU_KLEIDIAI model buffer` marker; generic runs must not contain it. This is not a microkernel trace.

## Provenance and fingerprints

| Field | Value |
| --- | --- |
| Classification | `supplementary-capacity` |
| Source repository | `agrovr/ParetoPilot` |
| Source revision | `db9ccaf37e3c7e807832652e237de813675ed807` |
| Workflow run | `30144901854` attempt `1` |
| Runner | `Ubuntu 24.04` · `arm64` · `Neoverse-N2` · `4` CPUs |
| Runtime | `llama.cpp` at `67b9b0e7f6ce45d929a4411907d3c48ec719e81c` |
| Frozen canonical run | `30055662526` · `v1.1.0` |
| Capacity plan SHA-256 | `85cf5ecad8d3e9c8cc83f2b7fe554b913013360d6a81322305edee32e06b98db` |
| Load plan SHA-256 | `b10f61b7093f58ad6d142deafd7d6befe600d1d54a433b59c101131dd8c2d9bb` |
| Capacity manifest SHA-256 | `76e34e4a7abb599a298a7ece79c2a032872bd8c9db08a1ce4055a6fdea727da9` |
| Capacity source artifacts | `42` files |
| Canonical outputs modified | **No** |

## Reproduce and compare

Run from the extracted supplementary capacity bundle. This first verifies every archived file, installs the exact source revision, and then requires byte-for-byte matches for both derived outputs.

<details>
<summary>Show exact commands</summary>

```bash
sha256sum --check SHA256SUMS
python -m pip install --no-deps --force-reinstall "git+https://github.com/agrovr/ParetoPilot.git@db9ccaf37e3c7e807832652e237de813675ed807"
paretopilot assemble-capacity \
  --plan capacity-plan.json \
  --load-plan load-plan.json \
  --manifest manifest.json \
  --load forward/q8-generic/p1=runs/forward/q8-generic/p1/load-evaluation.json \
  --rss forward/q8-generic/p1=runs/forward/q8-generic/p1/server-time.txt \
  --server-log forward/q8-generic/p1=runs/forward/q8-generic/p1/server.stderr.log \
  --load forward/q8-generic/p2=runs/forward/q8-generic/p2/load-evaluation.json \
  --rss forward/q8-generic/p2=runs/forward/q8-generic/p2/server-time.txt \
  --server-log forward/q8-generic/p2=runs/forward/q8-generic/p2/server.stderr.log \
  --load forward/q8-generic/p4=runs/forward/q8-generic/p4/load-evaluation.json \
  --rss forward/q8-generic/p4=runs/forward/q8-generic/p4/server-time.txt \
  --server-log forward/q8-generic/p4=runs/forward/q8-generic/p4/server.stderr.log \
  --load forward/q4-kleidiai-tuned/p1=runs/forward/q4-kleidiai-tuned/p1/load-evaluation.json \
  --rss forward/q4-kleidiai-tuned/p1=runs/forward/q4-kleidiai-tuned/p1/server-time.txt \
  --server-log forward/q4-kleidiai-tuned/p1=runs/forward/q4-kleidiai-tuned/p1/server.stderr.log \
  --load forward/q4-kleidiai-tuned/p2=runs/forward/q4-kleidiai-tuned/p2/load-evaluation.json \
  --rss forward/q4-kleidiai-tuned/p2=runs/forward/q4-kleidiai-tuned/p2/server-time.txt \
  --server-log forward/q4-kleidiai-tuned/p2=runs/forward/q4-kleidiai-tuned/p2/server.stderr.log \
  --load forward/q4-kleidiai-tuned/p4=runs/forward/q4-kleidiai-tuned/p4/load-evaluation.json \
  --rss forward/q4-kleidiai-tuned/p4=runs/forward/q4-kleidiai-tuned/p4/server-time.txt \
  --server-log forward/q4-kleidiai-tuned/p4=runs/forward/q4-kleidiai-tuned/p4/server.stderr.log \
  --load reverse/q4-kleidiai-tuned/p4=runs/reverse/q4-kleidiai-tuned/p4/load-evaluation.json \
  --rss reverse/q4-kleidiai-tuned/p4=runs/reverse/q4-kleidiai-tuned/p4/server-time.txt \
  --server-log reverse/q4-kleidiai-tuned/p4=runs/reverse/q4-kleidiai-tuned/p4/server.stderr.log \
  --load reverse/q4-kleidiai-tuned/p2=runs/reverse/q4-kleidiai-tuned/p2/load-evaluation.json \
  --rss reverse/q4-kleidiai-tuned/p2=runs/reverse/q4-kleidiai-tuned/p2/server-time.txt \
  --server-log reverse/q4-kleidiai-tuned/p2=runs/reverse/q4-kleidiai-tuned/p2/server.stderr.log \
  --load reverse/q4-kleidiai-tuned/p1=runs/reverse/q4-kleidiai-tuned/p1/load-evaluation.json \
  --rss reverse/q4-kleidiai-tuned/p1=runs/reverse/q4-kleidiai-tuned/p1/server-time.txt \
  --server-log reverse/q4-kleidiai-tuned/p1=runs/reverse/q4-kleidiai-tuned/p1/server.stderr.log \
  --load reverse/q8-generic/p4=runs/reverse/q8-generic/p4/load-evaluation.json \
  --rss reverse/q8-generic/p4=runs/reverse/q8-generic/p4/server-time.txt \
  --server-log reverse/q8-generic/p4=runs/reverse/q8-generic/p4/server.stderr.log \
  --load reverse/q8-generic/p2=runs/reverse/q8-generic/p2/load-evaluation.json \
  --rss reverse/q8-generic/p2=runs/reverse/q8-generic/p2/server-time.txt \
  --server-log reverse/q8-generic/p2=runs/reverse/q8-generic/p2/server.stderr.log \
  --load reverse/q8-generic/p1=runs/reverse/q8-generic/p1/load-evaluation.json \
  --rss reverse/q8-generic/p1=runs/reverse/q8-generic/p1/server-time.txt \
  --server-log reverse/q8-generic/p1=runs/reverse/q8-generic/p1/server.stderr.log \
  --quality q8-generic/p1=quality/q8-generic/p1/quality-evidence.json \
  --quality q8-generic/p2=quality/q8-generic/p2/quality-evidence.json \
  --quality q8-generic/p4=quality/q8-generic/p4/quality-evidence.json \
  --quality q4-kleidiai-tuned/p1=quality/q4-kleidiai-tuned/p1/quality-evidence.json \
  --quality q4-kleidiai-tuned/p2=quality/q4-kleidiai-tuned/p2/quality-evidence.json \
  --quality q4-kleidiai-tuned/p4=quality/q4-kleidiai-tuned/p4/quality-evidence.json \
  --output capacity-study.reproduced.json
paretopilot capacity-receipt capacity-study.reproduced.json --output capacity-receipt.reproduced.md
cmp --silent capacity-study.json capacity-study.reproduced.json
cmp --silent capacity-receipt.md capacity-receipt.reproduced.md
```

</details>

## Boundary

This is a bounded fixed-concurrency study on one native Arm64 runner. It is not an open-loop production-capacity benchmark, a cost or energy claim, or a replacement for the frozen canonical v1.1 recommendation. The KleidiAI log marker establishes only that llama.cpp reported a CPU_KLEIDIAI model buffer; it is not kernel-level acceleration proof.

**Canonical outputs modified: No**
