Aufbau eines Inferenz-Servers mit 576 GB VRAM: ein Inbetriebnahme-Protokoll

Die meisten Server-Berichte beschreiben die Maschine, die bestellt wurde. Dieser hier beschreibt die Maschine, die gebaut wurde — einschließlich der beiden Dinge, die beim ersten Einschalten nicht stimmten, und des einen, das wir nie vollständig erklärt haben.

Aufbau: 7U-Rack · 2× AMD EPYC 7643 (96C/192T) · 512 GB DDR4 ECC · 6× NVIDIA RTX PRO 6000 Blackwell Max-Q, 576 GB GDDR7 · 2 TB + 4 TB NVMe
Gebaut und in Betrieb genommen: August 2026, Kentino Werkstatt, Prag · Status: ausgeliefert

Kentino AI-7 7U-Chassis, verschlossen und auf der Werkbank eingeschaltet
Die fertige Maschine auf der Inbetriebnahme-Werkbank, Frontblende für den Luftstromtest abgenommen.

Wir halten das für den nützlicheren Artikel. Eine Stückliste kann jeder abschreiben.

Was die Maschine ist

Sechs RTX PRO 6000 Blackwell Max-Q mit je 96 GB auf einer Dual-Socket-EPYC-Rome-Plattform mit 512 GB ECC-Speicher. 576 GB VRAM in einem Gehäuse — genug, um ein Modell mit 753 Milliarden Parametern in 4 Bit vorzuhalten, mit Platz für eine Million Token Kontext.

Die Max-Q-Variante ist entscheidend. Mit 300 W statt 600 W pro Karte passen sechs davon in ein thermisches und elektrisches Budget, das eine Werkstatt — und später ein Serverraum — tatsächlich bereitstellen kann. Die gemessene Leistungsaufnahme an der Steckdose lag unter Volllast bei ~2.9 kW, etwa 80% eines einzelnen 16-A/230-V-Stromkreises.

Das Chassis ist unsere eigene 7U-Konstruktion: zwei unabhängig gekühlte Blöcke mit je vier GPU-Schächten, sodass keine Karte in der Abluft von mehr als drei anderen sitzt.

Offenes 7U-Chassis von oben mit den Trennwänden der GPU-Schächte
Zwei unabhängig gekühlte Blöcke mit je vier Schächten. Keine Karte sitzt in der Abluft von mehr als drei anderen.

Der erste Fehler: zwei GPUs liefen unbemerkt mit halber Geschwindigkeit

Das System bootete, alle sechs Karten wurden erkannt, nvidia-smi sah perfekt aus.

Zwei von ihnen liefen mit PCIe Gen4 x8 statt x16.

Nichts meldete einen Fehler. Der Treiber war zufrieden, die Karten arbeiteten, die Inferenz lief. Sichtbar wurde es nur, indem wir die Host-zu-Device-Bandbreite jeder einzelnen Karte maßen und feststellten, dass zwei davon 13.9 GB/s lieferten, wo die übrigen 27.7 erreichten.

Die Ursache war ein Fehler auf der physikalischen Ebene an zwei Chassis-Steckverbindern — nicht an den Karten, nicht am Board, nicht am Riser-Konzept. Beide Verbindungen wurden auf freie Steckverbinder umgelegt, danach bestätigten alle sechs Karten unter Last Gen4 x16. Die beiden verdächtigen Steckverbinder sind in der Build-Akte namentlich festgehalten und bleiben für die gesamte Lebensdauer der Maschine unbelegt.

Eine GPU, die mit halber Lane-Breite trainiert, meldet sich nicht von selbst. Wenn Ihr Inbetriebnahme-Prozess die PCIe-Bandbreite nicht pro Karte unter Last misst, liefern Sie diesen Fehler aus und erfahren nie davon.

Chassis-Innenraum mit GPU-Schächten und Kühlung
Innenansicht während der Montage. Jede Karte erhält ihre eigene Riser-Strecke zum Board — und genau dort saß der Fehler.

Der zweite Fehler: ein ECC-Muster, das gar nicht vom Speicher kam

Mitten in der Inbetriebnahme begannen zwei DIMMs, korrigierbare ECC-Fehler zu protokollieren. Korrigierbar heißt: Die Hardware hat sie erkannt und behoben — kein Datenverlust, keine falschen Ergebnisse, keine Auswirkung auf irgendein Resultat. Zwei Module, die Fehler melden, sind aber normalerweise zwei Module zum Austausch.

Wir haben sie nicht getauscht, und der Grund dafür ist der interessante Teil.

Die Ereignisse lagen 4 h 30 m und 4 h 01 m auseinander, und jedes einzelne trat auf beiden Modulen innerhalb derselben Sekunde auf. Zwei unabhängig voneinander grenzwertige Speichermodule fallen nicht in nahezu festem Intervall aus, und schon gar nicht dreimal hintereinander in derselben Sekunde. So sieht degradierendes Silizium nicht aus. Das ist die Signatur von etwas Externem und Periodischem.

Das Intervall passte zu einer leistungsstarken Schaltlast in der Inbetriebnahme-Umgebung. Anschließend ließen wir rund 20 Stunden instrumentierten Dauerlauf unter anhaltender realer Last fahren, mit minütlicher Telemetrie von allen sechs GPUs, CPU, Speicher, Datenträgern und dem BMC-Ereignisprotokoll. Null ECC-Ereignisse.

Also blieben die Module drin.

Worauf wir ausdrücklich Wert legen: Wir haben die Ereignisse nie gegen einen protokollierten Schaltzyklus der vermuteten Quelle korreliert. Die Zuordnung ist eine Schlussfolgerung, kein Beweis. Wir haben die Beobachtung, das Intervall und das Testfenster an den Kunden gemeldet und klar gesagt, dass es sich nicht um eine belegte Grundursache handelt. War die Ursache umgebungsbedingt, reist sie nicht mit der Maschine mit — und zwanzig Stunden Ruhe unter Last sind ein gutes Indiz, keine Garantie.

Ein praktischer Hinweis, der uns Zeit gekostet hat: Diese Plattform arbeitet mit Firmware-First-Fehlerbehandlung, deshalb stehen die ECC-Zähler auf Linux-Seite auf null, egal was passiert. Der Speicherzustand muss aus dem BMC-Ereignisprotokoll gelesen werden. Wer edac überwacht und sonst nichts, überwacht gar nichts.

Was die Maschine tatsächlich leistet

Alle Werte wurden an diesem konkreten System gemessen, nicht aus einem Datenblatt übernommen.

Rechenleistung und Gleichmäßigkeit

Messung Ergebnis
FP16-Dense-Matmul, pro Karte 291–302 TFLOPS (3.5% Streuung über sechs Karten)
VRAM-Bandbreite, pro Karte ~1,471 GB/s (einheitlich bis auf 0.2%)
Sechsfach datenparallele Inferenz 3,859 tok/s · 90.8% Skalierungseffizienz
Streuung je Replik über sechs GPUs 0.45%

Diese halbprozentige Streuung über sechs Karten ist die Zahl, die uns am meisten interessiert. Sie bedeutet, dass keine Karte unbemerkt unter ihren Möglichkeiten bleibt — und sie ist nur deshalb aussagekräftig, weil der PCIe-Fehler oben zuvor gefunden wurde.

Inferenz mit großen Modellen

GLM-5.2 — 753 Milliarden Parameter (40 B aktiv), 4 Bit, 341 GB resident über sechs Karten verteilt:

Gleichzeitige Anfragen 1 4 16 32 48
Generierung tok/s 38.0 78.5 117–120 148.1 172.2

Auf dieser Hardware lässt sich außerdem der native Kontext des Modells von 1,048,576 Token laden — 494 GiB VRAM, womit auf der knappsten Karte noch 6.6 GiB frei bleiben. Das funktioniert, ist aber eine schmale Reserve, und das haben wir auch so gesagt.

Das Tuning der Prefill-Micro-Batch-Größe (-b/-ub 4096) hob die Prompt-Verarbeitung von 403 auf 606 tok/s, ein Plus von 50% — für eine Änderung in einer einzigen Zeile. Spekulatives Decoding brachte +53% im Einzelstrom, kostete aber 6% bei Batch-Läufen mit langen Prompts; es wird daher pro Workload aktiviert statt global.

Eine eingebaute RTX PRO 6000 Blackwell Max-Q
Eine der sechs RTX PRO 6000 Blackwell Max-Q. Je 96 GB, je 300 W.

Burn-in

810,033 Matmuls über sechs GPUs bei 100% Last. Null Rechenfehler. Spitzenwert 88 °C, dauerhaft 300 W pro Karte, kein thermisches Throttling — clocks_event_reasons meldete durchgehend Not Active.

Wo diese Maschine knapp ist — und wir es gesagt haben

Die thermische Reserve beträgt ~2 °C. Spitzenwert 88 °C gegenüber einem Throttle-Punkt von ~90 °C, bei 28–33 °C Umgebungstemperatur in einer unklimatisierten Werkstatt im August. In einem Raum unter 25 °C ist reichlich Luft. In einem warmen Raum nicht. Anhaltende reale Workloads erreichten dieselben Temperaturen wie der synthetische Burn-in — das ist also kein rein synthetisches Problem.

Der naheliegende Hebel ist ein GPU-Power-Limit — 260 W statt 300 W. Wir haben nicht gemessen, was das an dieser Maschine an Durchsatz kostet, und haben es deshalb auch nicht so empfohlen, als hätten wir es getan. Messen Sie es gegen Ihren eigenen Workload.

Der Software-Stack ist spezifisch und empfindlich. GLM-5.2 läuft auf dieser GPU-Generation weder unter vLLM noch unter SGLang — drei voneinander unabhängige Upstream-Grenzen. llama.cpp ist der funktionierende Weg. Davon unabhängig enthält die vLLM-Installation einen lokalen Patch, der einen Absturz bei Nebenläufigkeit mit quantisierten Modellen behebt, und dieser Patch überlebt pip install -U vllm nicht. Pinnen Sie Ihre Versionen.

Dual-Socket bedeutet NUMA. Die Host-zu-Device-Bandbreite teilt sich nach Sockel auf: GPUs 0–2 am einen, 3–5 am anderen, mit rund 20% Einbuße für Host-Puffer, die auf dem falschen Knoten liegen. Kein Fehler — Physik — aber dort, wo die Bandbreite zwischen Host und Device zählt, müssen Sie mit numactl pinnen.

Ein Test ist tatsächlich unvollständig. Die abschließende kombinierte Stufe mit maximaler CPU- und GPU-Last wurde durch einen Ausfall der Stromverteilung in der Werkstatt unterbrochen. Die rund 20 Stunden Dauerlauf unter gemischter Last decken den realen Betriebsfall ab, deshalb haben wir die Lücke gemeldet, statt die Dauerläufe stillschweigend als den fehlenden Test auszugeben.

Der fertige Server, verschlossen und versandbereit
Verschlossen und versandbereit.

Warum wir die Fehler veröffentlichen

Ein Inbetriebnahme-Bericht, in dem alles bestanden hat, sagt Ihnen nichts über die Leute, die ihn geschrieben haben. An jeder Maschine dieser Komplexität stimmt beim ersten Einschalten etwas nicht. Die Frage ist nur, ob es auf unserer Werkbank gefunden wird oder in Ihrem Rack.

Bei diesem Aufbau waren es zwei Steckverbinder, die ein Viertel der GPU-Anbindung auf halbe Geschwindigkeit drückten — unsichtbar für jede Statusanzeige des Systems. Es brauchte eine Messung, um sie zu finden, und zehn Minuten, um sie zu beheben.

Genau dafür ist die Inbetriebnahme da.

Zurück zum Blog