Files
Jason WittyandClaude Opus 5.5 cff8cf640e Keep 275 W power cap at boot
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-26 21:07:54 -07:00

81 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# lovey
lovey is my inference server running 2× RTX 3090s. This repo stores and documents its configuration,
models and benchmarks, and holds everything needed to rebuild the current setup from bare metal.
**Current state (2026-10-26):** Proxmox host → one NixOS VM with both GPUs passed through → Strata
serving Qwen3.8-Flash-Next IQ3_S on an OpenAI/Anthropic-compatible API, used from
[pi](https://pi.dev) on my workstation.
```
cosmic (workstation) lovey 192.168.1.53 (Proxmox VE 9.2)
┌──────────────────┐ LAN ┌──────────────────────────────────────────────────────┐
│ pi coding agent │──────────────▶│ VM 200 llm-nixos 192.168.1.67 (NixOS 26.05) │
│ ~/.pi/agent │ :8080 + key │ strata.service ── Qwen3.8-Flash-Next IQ3_S │
└──────────────────┘ │ 2× RTX 3090 (VFIO), gpu-unlock, 275 W cap │
│ /models ◀── virtiofs ── /mnt/models (NVMe XFS) │
│ gpu-temp-push ──UDP :7777──▶ lovey-fans.service │
└──────────────────────────────────────────────────────┘
```
## Hardware
| Part | Detail |
|---|---|
| Board | ASUS ROG Maximus Z790 Hero |
| CPU | Intel i9-14900KS, microcode 0x133, 200 W PL1 / 253 W PL2, Intel default profile |
| RAM | 4× 32 GB = 128 GB DDR5, **run at 4800 MT/s JEDEC** (unstable at 5200+ with 4 DIMMs) |
| GPUs | 2× Zotac RTX 3090 24 GB at `01:00` and `02:00`, PCIe 4.0 x8 each, no NVLink |
| Boot disk | 250 GB SATA SSD (`sda`): Proxmox only |
| Data disk | MSI M470 2 TB NVMe, 4K LBA: model store + VM disks |
| Cooling | Liquid: radiator fans on nct6798 fan2–5 (driven by `lovey-fans`), pump on fan7, no coolant sensor |
| NIC | Onboard Intel 2.5G `eno2`, bridged as `vmbr0` |
## Software stack
| Layer | What | Docs |
|---|---|---|
| Host | Proxmox VE 9.2.21, kernel 7.0.14-pve, pve-no-subscription repos | [docs/proxmox-host.md](docs/proxmox-host.md) |
| VM 200 | `llm-nixos`: NixOS 26.05, kernel 6.18, NVIDIA open 595.71, CUDA 13.2 | [docs/nixos-guest.md](docs/nixos-guest.md) |
| GPU tuning | 275 W power cap + [gpu-unlock](https://github.com/Zagitta/gpu-unlock) (full-rate FP16/BF16) | [docs/nixos-guest.md](docs/nixos-guest.md#gpu-tuning) |
| Inference | [Strata](https://github.com/Niko1221/Strata) @ `4b9e05a2`, Qwen3.8-Flash-Next IQ3_S | [docs/strata.md](docs/strata.md) |
| Client | pi coding agent 1.4.0 | [docs/pi-client.md](docs/pi-client.md) |
| Fans | `lovey-fans.py` on the host, fed GPU temps by the guest | [docs/proxmox-host.md](docs/proxmox-host.md#fan-control) |
Current numbers (standard benchmark, idle): prompt ~1,750 tok/s at 4K and ~2,900 tok/s at 16K, decode
~110–131 tok/s, model load ~2 min. See [benchmarks/standard](benchmarks/standard/README.md).
## Repo layout
```
nixos/ /etc/nixos on llm-nixos (configuration.nix, gpu-unlock.nix, hardware-configuration.nix)
proxmox/ files from lovey, at their real paths (etc/..., usr/local/bin/..., root/...)
strata/ strata-iq3_s.json, the engine config (API key removed)
pi/ ~/.pi/agent/models.json, settings.json and extensions/ for the client (API key removed)
docs/ per-layer notes, rebuild steps and the change log
benchmarks/ live metric snapshots (passive) and later benchmark runs
```
**Secrets are not in this repo** (it is public). The Strata API key lives only in
`/var/lib/strata/api-key` and `strata-iq3_s.json` on the guest; placeholders are marked `<...>`.
## Rebuild order
1. BIOS: memory at 4800 JEDEC, CPU 200/253 W, VT-d on. See [proxmox-host.md](docs/proxmox-host.md#bios).
2. Proxmox host: repos, NVMe layout, VFIO, Gluster, fans. [proxmox-host.md](docs/proxmox-host.md#rebuild)
3. VM 200 from `proxmox/etc/pve/qemu-server/200.conf`, then NixOS from `nixos/`. [nixos-guest.md](docs/nixos-guest.md#rebuild)
4. Strata source build + model download. [strata.md](docs/strata.md#rebuild)
5. pi on the workstation. [pi-client.md](docs/pi-client.md)
## History
Everything that went wrong and what fixed it is in [docs/changelog.md](docs/changelog.md): the Z690
memory-channel fault, the 4-DIMM instability on the Z790, and the pi auto-compaction loop.
## Next up
- Strata tuning: the three documented flags gave nothing ([results](benchmarks/standard/README.md)).
Next levers: huge pages for the expert arena, a higher power cap for prompt speed.
- Try other quants.
- Planned services as OCI LXCs on the host: SearXNG + degoog, Qdrant, Open WebUI, Tika, Whisper.