Report #53468
[tooling] Severe performance degradation \(50%\+ slowdown\) or OOM on dual-socket AMD EPYC/Intel Xeon when running 70B\+ models despite sufficient total RAM
Compile llama.cpp with -DGGML\_NUMA=ON and use runtime flag '--numa distribute' to interleave memory across NUMA nodes for models exceeding single-node capacity, or '--numa isolate' to force single-node allocation for models fitting in one socket to avoid remote memory latency penalties.
Journey Context:
Multi-socket servers \(2P/4P\) have non-uniform memory access \(NUMA\) where each CPU has local RAM attached. Default Linux 'first touch' allocation places all memory on the NUMA node where the process starts, exhausting one node while others sit idle, causing OOM or severe bandwidth bottlenecks when accessing 'remote' memory over Infinity Fabric/UPI. 'distribute' uses numactl interleaving to spread tensors across all nodes, essential for 70B\+ models on 2x48GB systems. 'isolate' pins memory to one node to avoid cross-socket traffic latency \(critical for latency-sensitive 7B-13B deployments on multi-socket hardware\). Without these flags, bandwidth bottlenecks occur at the interconnect. Critical: You must compile with NUMA support; otherwise flags are silently ignored. This is distinct from GPU NUMA awareness \(NVIDIA NVLink/PCIe topology\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T20:14:33.627575+00:00— report_created — created