PRIMA.CPP: Versnelling van 70B-schaal LLM-inferentie op laagvermogen alledaagse thuisclusters
PRIMA.CPP: Speeding Up 70B-Scale LLM Inference on Low-Resource Everyday Home Clusters
April 7, 2025
Auteurs: Zonghang Li, Tao Li, Wenjiao Feng, Mohsen Guizani, Hongfang Yu
cs.AI
Samenvatting
De opkomst van DeepSeek R1 en QwQ 32B heeft prestatiebarrières doorbroken voor het draaien van geavanceerde grote taalmodellen (LLMs) op thuisapparaten. Hoewel consumentenhardware steeds krachtiger wordt en modelkwantisatie verbetert, vereisen bestaande end-side oplossingen nog steeds GPU-clusters, grote RAM/VRAM en hoge bandbreedte, ver buiten het bereik van een gemiddeld thuiscluster. Dit artikel introduceert prima.cpp, een gedistribueerd inferentiesysteem dat 70B-schaalmodellen draait op alledaagse thuisapparaten met een mix van CPU/GPU, lage RAM/VRAM, Wi-Fi en cross-platform ondersteuning. Het gebruikt mmap om modelgewichten te beheren en introduceert piped-ring parallelisme met prefetching om schijfladen te verbergen. Door heterogeniteit in berekening, communicatie, schijf, geheugen (en zijn beheergedrag) en het besturingssysteem te modelleren, wijst het optimaal modellagen toe aan de CPU en GPU van elk apparaat, waardoor de tokenlatentie verder wordt verminderd. Een elegant algoritme genaamd Halda wordt voorgesteld om dit NP-moeilijke toewijzingsprobleem op te lossen. We evalueren prima.cpp op een veelvoorkomend vier-node thuiscluster. Het presteert beter dan llama.cpp, exo en dllama op 30B+ modellen terwijl de geheugendruk onder de 6% blijft. Dit brengt geavanceerde 30B-70B modellen, zoals Llama 3, DeepSeek R1, Qwen 2.5 en QwQ, naar thuisassistenten, waardoor geavanceerde AI echt toegankelijk wordt voor individuen. De code is open source en beschikbaar op https://github.com/Lizonghang/prima.cpp.
English
Emergency of DeepSeek R1 and QwQ 32B have broken through performance barriers
for running frontier large language models (LLMs) on home devices. While
consumer hardware is getting stronger and model quantization is improving,
existing end-side solutions still demand GPU clusters, large RAM/VRAM, and high
bandwidth, far beyond what a common home cluster can handle. This paper
introduces prima.cpp, a distributed inference system that runs 70B-scale models
on everyday home devices using a mix of CPU/GPU, low RAM/VRAM, Wi-Fi, and
cross-platform support. It uses mmap to manage model weights and introduces
piped-ring parallelism with prefetching to hide disk loading. By modeling
heterogeneity in computation, communication, disk, memory (and its management
behavior), and OS, it optimally assigns model layers to each device's CPU and
GPU, further reducing token latency. An elegant algorithm named Halda is
proposed to solve this NP-hard assignment problem. We evaluate prima.cpp on a
common four-node home cluster. It outperforms llama.cpp, exo, and dllama on
30B+ models while keeping memory pressure below 6%. This brings frontier
30B-70B models, such as Llama 3, DeepSeek R1, Qwen 2.5, and QwQ to home
assistants, making advanced AI truly accessible to individuals. The code is
open source and available at https://github.com/Lizonghang/prima.cpp.Summary
AI-Generated Summary