Files
turing-multi-gpu-llm-server/docs/HARDWARE_LEARNINGS.md
T

4.4 KiB
Raw Blame History

🔬 Hardware Architecture & Key Technical Learnings

This document details the practical hardware behaviors, quirks, and engineering solutions discovered while building and optimizing this 3-GPU Turing inference rig on an HPE ProLiant DL380p Gen8 server.


1. NVIDIA CMP 50HX Mining GPUs: VBIOS & Power States

Why CMP 50HX Mining Cards Idle at ~75W85W Stock

  • No Display / Headless Architecture: CMP 50HX mining cards lack display outputs and display engines.
  • Missing Deep P8 VBIOS Tables: Standard GeForce VBIOSes drop to P8 state (405 MHz GDDR6 / ~10W) when no display is active. Mining VBIOSes lock the cards in P0 state (1,890 MHz core / 7,000 MHz GDDR6) by default.

OEM Reference VBIOS vs. MSI VBIOS

Comparing the hardware profiles of two CMP 50HX cards on the exact same rig:

  • GPU 2 (MSI Board 0x1462, VBIOS 90.02.60.00.17):
    • Idles at ~31.8W when core is locked to 300600 MHz.
    • Minimum fan speed: 25%.
    • Aggressive P3 voltage gating tables.
  • GPU 1 (NVIDIA Reference OEM 0x10DE, VBIOS 90.02.60.00.01):
    • Idles at ~61.2W when core is locked to 300600 MHz.
    • Minimum fan speed: 40% (locked in VBIOS).
    • Higher static VRM voltage rail leakage.
  • Actionable Solution: Cross-flash GPU 2's MSI VBIOS (90.02.60.00.17) onto GPU 1 using nvflash -6 to cut GPU 1's idle draw by ~30W and match fan curves.

2. Power Cap vs Inference Throughput

  • 100W Power Cap (-pl 100): Capping CMP 50HX cards to 100W throttles GPU 1's core clock down to 1,305 MHz during tensor-parallel splits, dropping generation speed from 18.0 tok/s \rightarrow ~14.0 tok/s.
  • 150W Power Cap (-pl 150): Provides sufficient headroom for full 1,8001,900 MHz boost clocks, sustaining 18.03 tok/s while protecting against unnecessary 225W power spikes and heat.

3. Automated Dynamic Power Governor (power-governor.py)

  • The Problem with GPU Utilization Polling: On Turing GPUs during batch=1 token generation, utilization.gpu fluctuates between 0% and 5% between token steps. Relying on GPU utilization causes false idle triggers.
  • The Solution: Direct slot polling against llama-server (http://127.0.0.1:8080/slots is_processing: True).
  • Governor Behavior:
    • When is_processing: True: Instantly sets unconstrained clocks (nvidia-smi -rgc) \rightarrow 18.03 tok/s.
    • When idle for > 15 seconds: Sets low-power 300600 MHz core clocks \rightarrow drops power to ~31W/card.

4. HPE ProLiant DL380p Gen8 Platform Learnings

Sandy Bridge-EP (v1) vs. Ivy Bridge-EP (v2) PCIe 3.0 Jitter

  • The Sandy Bridge-EP v1 Bug: Intel's first-generation PCIe 3.0 controller on Xeon E5-2600 v1 (2012) suffered from transmitter signal margin attenuation (Intel Errata BD78/BD105). Over riser cables, the 8.0 GHz eye diagram degrades, forcing links down to Gen 1 (2.5 GT/s).
  • The Ivy Bridge-EP v2 Fix: Xeon E5-2600 v2 (22nm Tri-Gate) completely redesigned the PCIe 3.0 PHY with CTLE equalization, reliably locking Gen 3 speeds across risers.

NUMA Socket Pinning

  • Dual-socket Xeon servers have two distinct NUMA nodes.
  • If all GPUs are plugged into Primary Riser 1, they are physically connected to CPU Socket 1 (NUMA Node 1).
  • Binding llama-server to NUMA Node 1 (CPUAffinity & NUMAPolicy=bind) eliminates all host-to-device memory traffic over the cross-socket Intel QPI bus.

External PSU & Common Grounding

  • When GPUs receive PCIe data signals from the server motherboard but 12V power from an external PSU:
  • Ensure the server chassis and external PSU casing share a solid common ground to eliminate high-frequency ground loop noise on PCIe differential clock lines (REFCLK).

5. 20GB VRAM Modding Feasibility (CMP 50HX TU102)

  • Architecture: CMP 50HX uses the TU102 PCB layout (320-bit bus, 10 memory pads).
  • Memory Swap:
    • Desolder 10x 1GB (8Gbit) GDDR6 BGA-180 chips (e.g., Samsung K4Z80325BC-HC14).
    • Solder 10x 2GB (16Gbit) GDDR6 BGA-180 chips (e.g., Samsung K4ZAF325BM-HC14 or Micron D9ZCL).
    • Modify memory strapping resistor dividers to signal 16Gbit density to the TU102 memory controller.
  • Payoff:
    • 2x Modded Cards = 40 GB Total VRAM (capable of running full 70B/72B models like Llama-3.3-70B or Qwen2.5-72B on just 2 dedicated x16 slots).
    • 4x Modded Cards = 80 GB Total VRAM (enterprise A100-tier capacity for under $1,000).