The docs-fact census wave re-read the live hosts and re-keyed every page it could: runtime/payload identities, ports, sizes, ledger figures, unit state, and the retirement banners that drifted as the fleet moved. The wave was interrupted mid-run, so this commit carries only what passed the integrity gates: every touched page parses (front matter or H1+status convention intact, balanced fences, no truncated tables, trailing newline), the docs_completeness and link-integrity seams are green, and bats is 384/384. Numbers that this session proved on live hosts are keyed to the measured value, not the page's earlier claim.
153 lines
9.3 KiB
Markdown
153 lines
9.3 KiB
Markdown
---
|
||
type: configuration
|
||
title: Dankserver System Specs
|
||
description: Dankserver hardware and OS state since the 2026-09-20 board swap (ASUS ProArt B850-Creator WiFi NEO, 2x AMD Radeon AI PRO R9700 gfx1201 on CPU lanes x8/x8) serving frank-medium.
|
||
tags:
|
||
- dankserver
|
||
- hardware
|
||
- r9700
|
||
- gfx1201
|
||
- rocm
|
||
timestamp: 2026-09-20
|
||
---
|
||
|
||
# Dankserver System Specs
|
||
|
||
## Server Overview
|
||
|
||
Dankserver is a media/library server and the `frank-archon` LLM host (radiance
|
||
1.0.13, 2×R9700 tensor-parallel — [[frank-archon-radiance-qwen38-iq4r]]; the
|
||
`frank-medium` name this page carried was retired 2026-09-20, see §Active
|
||
Services). The host runs Ubuntu 26.04 (Resolute Raccoon). The RTX 3090 that
|
||
served the FreeToken/CUDA `frank-zealot` era was removed on 2026-09-15 and
|
||
replaced with two AMD Radeon AI PRO R9700 cards (`lspci | grep -ci nvidia` → 0,
|
||
read 2026-10-18).
|
||
|
||
## Hardware Specifications
|
||
|
||
### Motherboard
|
||
|
||
| Property | Value |
|
||
|----------|-------|
|
||
| Board | **ASUS ProArt B850-Creator WiFi NEO** (Rev 1.xx) — swapped in 2026-09-20 |
|
||
| Previous | ASUS TUF GAMING B650-E WIFI (card #2 was behind the chipset there; see [[Dual-R9700-Cooperation]]) |
|
||
| GPU lanes | CPU GPP ports bifurcated **x8/x8** at Gen5: `PCIEX16(G5)_1` → `00:01.1`, `PCIEX16(G5)_2` → `00:01.3` (both bridges: `current_link_width=8`, `current_link_speed=32.0 GT/s`, read 2026-10-18); ~31.5 GB/s per card. Each card sits behind an on-board PCIe switch (`01:00.0`/`02:00.0`, `05:00.0`/`06:00.0` — "Navi 10 XL Upstream/Downstream Port of PCI Express Switch"), so the GPU endpoint itself trains **x16** Gen5 while the CPU-facing leg stays x8 |
|
||
| Atomic routing | `AtomicOpsCap: Routing+` on every bridge in both GPU chains, `AtomicOpsCtl: ReqEn+` on both endpoints — the condition that ruled out TP=2 for the previous board (2026-09-20 census; not re-readable today — `lspci -vv` needs root) *(unverified 2026-10-18)* |
|
||
| Free | `PCIEX16(G4)` (chipset, x4), M.2_2, M.2_3 |
|
||
| Occupied M.2 | M.2_1 — boot NVMe (Samsung PM9C1a, DRAM-less, `04:00.0`), trained **x2** at Gen5 (`current_link_width=2`, `current_link_speed=32.0 GT/s`, `max_link_width=4`, read 2026-10-18; 63 Gb/s ≈ 7.9 GB/s) |
|
||
| Onboard | 2× Realtek RTL8126 5GbE (`0b:00.0`, `0d:00.0`), RTL8922AE WiFi 7 (`0e:00.0`), ASMedia ASM1064 SATA (`0c:00.0`) + AMD 600-series SATA (`10:00.0`); the board's "PROM21 SATA" label is not what `lspci` reports *(unverified 2026-10-18)* |
|
||
|
||
### CPU
|
||
|
||
| Property | Value |
|
||
|----------|-------|
|
||
| Architecture | x86_64 |
|
||
| Vendor | AuthenticAMD |
|
||
| Model | AMD Ryzen 7 7700X |
|
||
| Cores | 8 cores / **8 threads** today — SMT is **off** (`lscpu`: `CPU(s): 8`, `Thread(s) per core: 1`, `Core(s) per socket: 8`, read 2026-10-18; max observed 5575.87 MHz). The board-swap era recorded 16 threads with SMT on; BIOS defaults reset with the board swap. The `--threads 8 --threads-batch 8` llama.cpp note belongs to the retired llama.cpp serving era |
|
||
| NUMA Nodes | 1 (node 0) |
|
||
|
||
### GPUs
|
||
|
||
| Property | Value |
|
||
|----------|-------|
|
||
| Model | 2x AMD Radeon AI PRO R9700 (Navi 48, DID 0x7551, rev c0) |
|
||
| Architecture | gfx1201 (RDNA4) |
|
||
| VRAM | 32,624 MiB each (`rocm-smi` reports 34,208,743,424 B per card) |
|
||
| Link | PCIe 5.0, endpoint-trained **x16** each behind the on-board switch; the CPU-facing leg is x8 (`00:01.1` / `00:01.3`, both `current_link_width=8` at 32.0 GT/s, read 2026-10-18). No XGMI. Separate IOMMU groups — `03:00.0` → group **15**, `07:00.0` → group **20** (`/sys/bus/pci/devices/.../iommu_group`, read 2026-10-18) |
|
||
| P2P | **Live and in use.** The running engine prints "I device: the 2 cards reach each other's memory directly (peer to peer)" (`podman logs frank-archon`, 2026-10-15 boot). The 2026-09-20 census had predicted the opposite — ACS `ReqRedir+` on both root ports, so traffic hairpinning at the root complex — and that prediction is superseded; see [[Dual-R9700-Cooperation]] |
|
||
| PCI | 03:00.0 and **07:00.0** (were `03:00.0` / `0b:00.0` on the B650-E) |
|
||
| iGPU | Raphael (gfx1036) at **11:00.0** — enumerates as ROCm device 2 (rocm-smi GPU[2], 512 MiB). The retired llama.cpp trios hid it with `HIP_VISIBLE_DEVICES=0,1`; the live radiance engine instead enumerates all three AQL devices and ignores it ("3 devices [0:gfx1201 1:gfx1201 2:gfx1036], using 2 of 3, ignoring gfx1036") |
|
||
|
||
The RTX 3090 is gone; stale `nvidia-smi` binaries and the disabled NVIDIA
|
||
apt lists remain on disk but no NVIDIA PCI device exists.
|
||
|
||
### Memory
|
||
|
||
| Property | Value |
|
||
|----------|-------|
|
||
| System RAM | **246 GiB** (`free -g` total 246, read 2026-10-18; upgraded for the Lucebox DeepSeek deployment of 2026-09-26; this page said 60 GiB until 2026-09-28 — a stale figure that survived the board swap) |
|
||
| Swap | 63 GiB (`/swapfile`, `swapon` → 64 GB file, read 2026-10-18) |
|
||
| /dev/shm | 124 GiB tmpfs (`df /dev/shm`, read 2026-10-18) |
|
||
|
||
### Storage
|
||
|
||
| Filesystem | Size | Used | Avail | Use% |
|
||
|------------|------|------|-------|------|
|
||
| / (nvme0n1p2) | 1.8T | 985G | 764G | 57% |
|
||
| /mnt/entropy (dm-0) | 91T | 87T | **67G** | **100%** — full; do not plan model payload here |
|
||
|
||
Models live under `/home/dank/models`; the serving stack is a digest-pinned
|
||
container image, not a host build tree — the llama.cpp trees on disk
|
||
(`/home/dank/GitPackages/llama.cpp-dflash2`, the older `charlie-ROCmFPX`, both
|
||
still present 2026-10-18) are retired-era builds. They share the self-contained
|
||
ROCm 7.14 nightly toolchain under `~/.local/share/rocm-7.14.0a20260624` (also
|
||
present 2026-10-18), which carries `librccl.so.1` and `hipcc`, so an
|
||
RCCL-backed rebuild needs no new host packages.
|
||
|
||
### Network
|
||
|
||
| Interface | Type | Speed | IP | Notes |
|
||
|-----------|------|-------|----|-------|
|
||
| eno1 | onboard RTL8126 5GbE | 2500 Mb/s (negotiated) | 192.168.0.235, **static** | LLM endpoint (port 7770). The address `models.yml`, Prometheus and Pi-hole all point at — preserved across the swap. |
|
||
| eno2 | onboard RTL8126 5GbE, second port | 2500 Mb/s | 192.168.0.247, DHCP | **New since the swap**: cabled, both ports up at 2500 Mb/s. The old lower-metric default route was resolved — `ip route` today shows eno1 `proto static metric 100` and eno2 `proto dhcp metric 200`, so eno1 wins. Two live addresses and two default routes remain for one host |
|
||
| wlp14s0 | WiFi 7 (RTL8922AE) | - | - | Renamed with the board (was `wlp8s0`); unused. |
|
||
|
||
### OS and Software
|
||
|
||
| Property | Value |
|
||
|----------|-------|
|
||
| OS | Ubuntu 26.04 LTS (Resolute Raccoon) |
|
||
| Kernel | 7.0.0-38-generic, `iommu=pt` (`uname -r`, `/proc/cmdline`, read 2026-10-18) |
|
||
| Python | 3.14.4 |
|
||
| ROCm userspace | Ubuntu 7.1 packages in /usr (hipcc 7.1.1, rocminfo, rocm-smi 7.1.1) |
|
||
| Serving stack | radiance 1.0.13 container (`stilldeadcode/radiance@sha256:4c3f484564…`), TP=2 across both R9700s — [[frank-archon-radiance-qwen38-iq4r]]. The llama.cpp `fb27a525` build at `~/GitPackages/llama.cpp-dflash2/build-rdna4-rocm714` is the retired frank-medium artifact |
|
||
|
||
The stale AMD-repo ROCm 6.3.3 packages (167, `~24.04`-suffixed) that used to
|
||
hijack `libhsa-runtime64` were purged on 2026-09-15 — see
|
||
[[frank-medium-rocmfpx]].
|
||
|
||
### Active Services
|
||
|
||
The active inference service is `frank-archon.service` (`systemctl is-active` →
|
||
`active`, `is-enabled` → `enabled`, read 2026-10-18): radiance 1.0.13 in a
|
||
host-network podman container answering `curl 127.0.0.1:7770/health` →
|
||
`{"status":"ok","model":"frank-archon",…}`. See
|
||
[[frank-archon-radiance-qwen38-iq4r]].
|
||
|
||
The services this page once called active are gone: `frank-medium.service`
|
||
(llama-server, 32:33 layer split + DFlash2 drafter) is `not-found` — that rung
|
||
ran 2026-09-16 → 09-20 and is documented in [[frank-medium-llamacpp-dflash2]];
|
||
`frank-zealot.service` (FreeToken/CUDA) was retired with the 2026-09-15 GPU
|
||
swap. Its archived unit was moved to `~/.AGENTTRASH/20260915-frank-zealot-retire/host-units/`
|
||
and the vllm-radiance replica trio to `~/.AGENTTRASH/20260916-vllm-radiance-retire/`
|
||
— neither path exists today (checked 2026-10-18), so the archive location is
|
||
unverified. See [[deployment]].
|
||
|
||
## Hardware Relevance
|
||
|
||
- 2× 32 GB VRAM: the live budget is stated per card, not by checkpoint size —
|
||
`--vram-weights-mib 25600` / `--vram-kv-mib 5120`
|
||
(`scripts/frank-archon.env:230-231`), against a card total of 31.86 GiB with
|
||
96 MiB publisher headroom (`scripts/frank-archon.env:186`). The retired
|
||
frank-medium fit (27.0 GiB Q8_0 + 1.06 GiB drafter + f16 KV for 327,680
|
||
tokens at 32:33, ~6.3/~5.2 GiB headroom) is history. Either way a batch or
|
||
context change needs a re-fit and not a guess.
|
||
- 246 GiB system RAM is **not** headroom: the live shape pins a 43.88 GiB host
|
||
pool per rank (`FRANK_ARCHON_HOST_POOL_MIB=44928`,
|
||
`scripts/frank-archon.env:184`) plus the 47.68 GiB n-gram/PLE table in RAM,
|
||
and `free -g` showed **90 GiB available** with the engine loaded (read
|
||
2026-10-18). The frank-medium claim that "nothing in the serving path is
|
||
CPU-resident" is retired with that runtime.
|
||
- The iGPU stays out of the serving path by engine choice, not by an env
|
||
var: radiance enumerates all three devices and uses 2 of 3, ignoring
|
||
gfx1036. No `HIP_VISIBLE_DEVICES` is set in the container today (`podman
|
||
inspect frank-archon`, read 2026-10-18).
|
||
|
||
## See Also
|
||
|
||
- [[frank-archon-radiance-qwen38-iq4r]] — the active serving runbook
|
||
- [[Dual-R9700-Cooperation]] — why the PCIe path matters, and what the swap changed
|
||
- [[deployment]] — the deploy flow
|
||
- [[Shared Memory Architecture Dankclaw]] — for contrast, Dankclaw's unified memory
|