PRIME PRODUCTS · MISSION CONTROL
AI-first transformation · by TPL · vanos.tpl.one

Docs / 08-transformation/05-technical/hardware-and-sizing

Hardware & Sizing

NVIDIA GPU server options, sizing math for ~50 users, power/cooling, storage, networking, backup hardware, and procurement notes.

type: blueprint updated: 2026-07-03 owner: kotsalidis

Hardware & Sizing

All € figures are rough placeholder ranges for budgeting only — actual quotes required. SKUs current as of mid-2026; re-verify at RFQ time (GPU market moves quarterly).

Sizing analysis

Workload: ~50 daily users, 10–15 concurrent at peak, primary model in the 30–70B class (quantized), plus an 8B Greek model, embeddings, reranker, and Whisper.

Memory (the binding constraint):

  • Llama-3.3-70B-Instruct AWQ 4-bit weights: ~40 GB.
  • KV cache: at FP8 KV, roughly 160 KB/token for the 70B → a 16k-token context ≈ 2.6 GB per full-context sequence; 15 concurrent sequences averaging 8–16k context ≈ 20–40 GB KV.
  • Greek penalty: Llama/Qwen tokenizers spend ~2–3× more tokens per Greek word than English. A “2-page” Greek document costs 2–3× the context and KV of its English twin. Size KV for the Greek-heavy case, not the English brochure case.
  • Krikri-8B (FP8/AWQ): ~8–10 GB incl. cache. Embeddings + reranker + Whisper: ~8–12 GB, ideally on a separate GPU so ingestion never steals serving KV.
  • Total comfortable envelope: ~100–140 GB VRAM → 4× 48 GB or 2× 96 GB class.

Throughput: 4× L40S with tensor parallelism on a 70B AWQ model delivers on the order of 400–700 aggregate tok/s under continuous batching — at 15 concurrent users that is ~25–45 tok/s per active stream, above the ~15 tok/s “feels responsive” floor. Comfortable for chat + RAG; batch jobs (ingestion, summarization) run off-peak.

Server options

Option A — “Lean start”Option B — “Recommended”Option C — “Headroom / HA”
GPUs2× NVIDIA L40S 48 GB (or 2× RTX 6000 Ada)4× NVIDIA L40S 48 GB8× L40S in one chassis, or 2× servers à 4× L40S (HA), or 4× RTX PRO 6000 Blackwell 96 GB
VRAM total96 GB192 GB384 GB
Primary model32B class (Qwen3-32B AWQ) only; 70B does not fit with real concurrency70B AWQ + Krikri-8B + embeddings, with KV headroom70B at FP8/16 or two model generations side by side; N+1 failover
Concurrency @16k ctx~5–810–15+25+ or HA
Chassis2U, 2× GPU (e.g. Dell R760xa / Supermicro / Lenovo SR670-class)2U–4U, 4× GPU, air-cooled4U 8-GPU or 2× Option-B chassis
CPU / RAM1× 32c EPYC/Xeon, 256 GB2× 32c, 512 GB2× 48c+, 768 GB–1 TB per node
Indicative € (placeholder)~€35–55k~€70–100k~€140–220k
Power draw (GPU max)~0.7 kW GPUs, ~1.2 kW system~1.4 kW GPUs, ~2.2 kW system~3–4.5 kW

Recommendation: Option B. The 70B class is where Greek quality becomes acceptable for customer-facing drafts; Option A locks us to 32B and to painful mid-life GPU additions. L40S over H100 NVL: H100 NVL (~94 GB, ~2× the €/GPU) buys HBM bandwidth we don’t need at 15 concurrent users, and L40S is air-cooled, widely stocked in EU channels, and runs in a standard rack. Check at RFQ time: RTX PRO 6000 Blackwell Server Edition (96 GB) — if price/availability has settled, 2× of these can replace 4× L40S with better perf and simpler tensor-parallel config; treat as a drop-in variant of Option B, not a redesign. Option C is the documented growth path (second server ⇒ HA ⇒ k3s trigger per architecture-overview.md).

Power, cooling, room

ItemRequirement (Option B)Note
Power~2.2 kW sustained, 2× redundant PSUs, dedicated 16A circuits ×2Validate Piraeus HQ server-room supply — likely built for a few 1U boxes, not GPU load
UPSOnline double-conversion, ≥5 kVA, 10–15 min runtime + clean-shutdown integration (NUT)Existing UPS almost certainly undersized — budget ~€3–6k placeholder
Cooling~7,500 BTU/h added heat; room must hold <27 °C at Piraeus summer ambientSplit-unit audit required; add redundant cooling or the server throttles in August
Rack42U with proper airflow (blanking panels), lockedPhysical access control — this box holds tender data
Fire/envSmoke + temp + leak sensors alerting to TeamsCheap; do it

If the room audit fails, fallback is a colocation cage in an Athens-area datacenter — still “on-prem” in the confidentiality sense (our hardware, our keys) but weakens the air-gap story; decision for steering if triggered.

Storage

TierWhatSizeMedia
HotModel weights, KV offload, active indexes2× 3.84 TB NVMe (RAID1)Enterprise NVMe (mixed-use)
WarmPostgreSQL, Qdrant, documents, n8n2× 7.68 TB NVMe (RAID1)Read-intensive NVMe
Backup (local)PBS datastore, snapshots≥24 TB usableNAS with HDD RAID6 (separate box)
OffsiteImmutable copies≥24 TBSecond NAS at branch office or EU S3-compatible with object lock

Model zoo grows fast (each 70B quant ~40 GB, keep N−1 versions) — the hot tier is not a place to economize.

Networking

  • 25 GbE dual-port on the GPU server (10 GbE minimum), LACP to a 10/25 GbE switch; ingestion and backup traffic must not fight chat latency.
  • Dedicated AI VLAN, firewalled from the office LAN; only the reverse proxy (Open WebUI/Teams webhook endpoints) exposed to the user VLAN. Egress default-deny — see security-and-operations.md.
  • Out-of-band management (iDRAC/IPMI) on a management-only VLAN.

Backup strategy (3-2-1)

  • 3 copies, 2 media, 1 offsite/immutable: Proxmox Backup Server to local NAS (nightly VM + hourly DB dumps), replicated via restic/PBS sync to offsite immutable target (branch-office NAS or EU object storage with object lock).
  • Targets: RPO ≤ 24 h for the platform, ≤ 1 h for PostgreSQL (WAL archiving); RTO ≤ 1 business day full platform, ≤ 4 h for chat+RAG core. Full table and drill schedule in security-and-operations.md.
  • Model weights are re-downloadable — back up the model registry manifest (hashes, sources), not 400 GB of weights.

Procurement notes

  • Lead times: GPU servers 6–10 weeks EU-configured; order the server, UPS, and network gear in the same wave. Room remediation (power/cooling) runs in parallel — it is usually the long pole.
  • Vendors: buy through a Greek/EU enterprise integrator (Dell/Lenovo/HPE/Supermicro channel) with NBD on-site support, 3–5 yr, GPUs explicitly on the support contract. Placeholder ~8–12% of hardware cost for 3-yr support.
  • Get two competing quotes; specify “4× L40S or current-equivalent NVIDIA 48–96 GB server SKU” so the integrator can propose newer silicon at equal-or-better €/VRAM.
  • Dependency and risk entries: ../02-program/risk-register.md (lead time, room remediation, GPU price volatility).

Growth path

  1. Now (Option B): 4× L40S, single server.
  2. +12–18 mo if adoption holds: second identical server → HA pair, staging gets real GPUs, k3s migration trigger.
  3. Model growth: next-gen 96 GB+ cards slot into the same chassis class; 70B → 100B+ class becomes feasible without platform redesign.