docs(frank-tts): the engine computes on the gfx1151 now; the NPU question is closed #35

Merged
dank merged 1 commits from docs/frank-tts-igpu-followup into main 2026-10-19 14:38:33 -07:00
Owner

Follow-through on #34 (the frank-tts-engine iGPU cutover). The runtime landed there; this makes the documentation and the unit's own comments true about it.

What changed

  • serverAppConfigs-docs/Dankclaw/Frank TTS Engine.md — Facts rows now describe the device shape (--device Vulkan0, RADV ICD in the image, 1.7 GiB host RSS because the weights ride the device); a fourth law (the card is shared with frank-dragoon, rollback is QWENTTS_DEVICE=); a deploy record for the cutover including the glslc configure gate; two new troubleshooting rows for "loader without ICD" and "dragoon slows while TTS speaks". The arm A/B prose keeps the argument and drops the CPU-era figures, which are dead weight per the purpose test.
  • serverAppConfigs-docs/Dankclaw/Frank TTS.md — "Where the engine computes" answers iGPU + co-tenancy, and states the NPU verdict rather than re-litigating it.
  • dankclaw/voiceservice/quadlet/frank-tts-engine.container — comment correction: the unit claimed GroupAdd=keep-groups is what grants render permission. Measured on this host the render nodes are world-writable via the udev rule and the container has no supplementary groups at all (id inside it shows only its own group, while tts-server still holds renderD129), so keep-groups stays as belt-and-braces and the comment says so. The RSS note now matches the device shape.
  • report/tts-npu-spike-verdict-2026-10-19.md — §5 records gate 2 (contention) as measured after the cutover with both tenants live, and the change surface is corrected to what actually ran: the build stage needs glslc (libvulkan-dev, spirv-headers, glslc) — the earlier text predicted libvulkan-dev glslang-dev, and glslang-tools does not ship a glslc that find_package(Vulkan COMPONENTS glslc REQUIRED) accepts.
  • index.md regenerated (one description changed).

Gates — ./tests/run.sh: 451/451. Docs-only, so the planner makes this a no-op deploy; no service restarts.

Built in worktree ~/.omp/wt/wt-tts-vulkan.


cwd: /home/blank/.omp/wt/wt-20261019-020309-6d1fc1f · session: 01a15566-20a1-739e-9b50-4ef6b041011f

Follow-through on #34 (the `frank-tts-engine` iGPU cutover). The runtime landed there; this makes the documentation and the unit's own comments true about it. **What changed** - **`serverAppConfigs-docs/Dankclaw/Frank TTS Engine.md`** — Facts rows now describe the device shape (`--device Vulkan0`, RADV ICD in the image, 1.7 GiB host RSS because the weights ride the device); a **fourth law** (the card is shared with [[frank-dragoon]], rollback is `QWENTTS_DEVICE=`); a deploy record for the cutover including the `glslc` configure gate; two new troubleshooting rows for "loader without ICD" and "dragoon slows while TTS speaks". The arm A/B prose keeps the *argument* and drops the CPU-era figures, which are dead weight per the purpose test. - **`serverAppConfigs-docs/Dankclaw/Frank TTS.md`** — "Where the engine computes" answers iGPU + co-tenancy, and states the NPU verdict rather than re-litigating it. - **`dankclaw/voiceservice/quadlet/frank-tts-engine.container`** — comment correction: the unit claimed `GroupAdd=keep-groups` is what grants render permission. Measured on this host the render nodes are world-writable via the udev rule and the container has no supplementary groups at all (`id` inside it shows only its own group, while `tts-server` still holds `renderD129`), so keep-groups stays as belt-and-braces and the comment says so. The RSS note now matches the device shape. - **`report/tts-npu-spike-verdict-2026-10-19.md`** — §5 records gate 2 (contention) as measured *after* the cutover with both tenants live, and the change surface is corrected to what actually ran: the build stage needs **`glslc`** (`libvulkan-dev`, `spirv-headers`, `glslc`) — the earlier text predicted `libvulkan-dev glslang-dev`, and `glslang-tools` does not ship a `glslc` that `find_package(Vulkan COMPONENTS glslc REQUIRED)` accepts. - `index.md` regenerated (one description changed). **Gates** — `./tests/run.sh`: 451/451. Docs-only, so the planner makes this a no-op deploy; no service restarts. Built in worktree `~/.omp/wt/wt-tts-vulkan`. --- cwd: /home/blank/.omp/wt/wt-20261019-020309-6d1fc1f · session: 01a15566-20a1-739e-9b50-4ef6b041011f
dank added 1 commit 2026-10-19 14:37:46 -07:00
The cutover PR merged the runtime; this carries the surface that has to be
true afterwards.

- Engine page: the shape is now `--device Vulkan0` on the gfx1151 as a
  co-tenant beside frank-dragoon; the registry/thread/streaming laws gain a
  fourth — the device law — whose numbers stay in the verdict report, and the
  deploy record gets the cutover steps including the `glslc` configure gate.
  The CPU-era arm/rollback prose keeps the qualitative argument and drops the
  dead numbers per the purpose test.
- Endpoint page: "Where the engine computes" now says iGPU + co-tenancy, and
  states the NPU verdict in one paragraph instead of a research tour.
- Quadlet comment: it claimed supplementary groups are what grant render
  access. On this host the udev rule world-writes the render nodes and the
  container's `id` shows no groups at all, so keep-groups is belt-and-braces;
  the RSS note now matches the device shape instead of the CPU trial.
- Verdict report: gate 2 (contention) recorded as measured after the cutover,
  and the build-stage prediction corrected — the package is `glslc`, not
  `libvulkan-dev glslang-dev`.
- index.md regenerated (one description changed).
dank merged commit 9b9c32005f into main 2026-10-19 14:38:33 -07:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dank/serverAppConfigs#35