PRIMA.CPP: Ускорение вывода языковых моделей масштаба 70B на маломощных домашних кластерах
PRIMA.CPP: Speeding Up 70B-Scale LLM Inference on Low-Resource Everyday Home Clusters
April 7, 2025
Авторы: Zonghang Li, Tao Li, Wenjiao Feng, Mohsen Guizani, Hongfang Yu
cs.AI
Аннотация
Появление DeepSeek R1 и QwQ 32B преодолело барьеры производительности для запуска передовых больших языковых моделей (LLM) на домашних устройствах. Хотя потребительское оборудование становится мощнее, а квантование моделей совершенствуется, существующие решения для конечных устройств по-прежнему требуют кластеров GPU, большого объема оперативной памяти (RAM/VRAM) и высокой пропускной способности, что значительно превышает возможности обычного домашнего кластера. В данной статье представлена система распределенного вывода prima.cpp, которая позволяет запускать модели масштаба 70B на повседневных домашних устройствах, используя комбинацию CPU/GPU, низкий объем RAM/VRAM, Wi-Fi и кросс-платформенную поддержку. Она использует mmap для управления весами модели и внедряет конвейерный кольцевой параллелизм с предварительной загрузкой для скрытия задержек при чтении с диска. Моделируя неоднородность в вычислениях, коммуникации, дисковых операциях, памяти (и её управлении) и операционной системе, система оптимально распределяет слои модели между CPU и GPU каждого устройства, дополнительно снижая задержку на токен. Для решения этой NP-трудной задачи распределения предложен элегантный алгоритм Halda. Мы оцениваем prima.cpp на стандартном домашнем кластере из четырех узлов. Она превосходит llama.cpp, exo и dllama на моделях 30B+, сохраняя нагрузку на память ниже 6%. Это делает передовые модели масштаба 30B-70B, такие как Llama 3, DeepSeek R1, Qwen 2.5 и QwQ, доступными для домашних ассистентов, делая передовые технологии ИИ действительно доступными для каждого. Код является открытым и доступен по адресу 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