← Все проекты
Проект / Python

HJCheng0602/nanoPD: nanoPD — движок для раздельного выполнения LLM на нескольких GPU

Ускоряет работу больших языковых моделей, распределяя вычисления между видеокартами.

Это движок для инференса LLM с нуля, реализующий стратегию раздельного выполнения (disaggregation) для повышения пропускной способности. Он поддерживает три режима работы: совмещённый, раздельный и адаптивный, который выбирает оптимальный путь на лету....

★ 41 Python Форки 4 Issue 1 Оценка 7/10 Карточка проверена

Для кого это

Для инженеров ML-инфраструктуры и DevOps, которые разворачивают LLM в продакшене и хотят повысить пропускную способность.

Проблема / задача

При одновременной обработке промптов и генерации токенов на одной видеокарте фазы мешают друг другу, что снижает общую производительность системы.

Как это работает

Проект разделяет два этапа генерации LLM: предварительную обработку промпта (prefill) и генерацию токенов (decode) — на разные GPU. Центральный планировщик с аналитической моделью стоимости решает для каждого запроса, выполнять ли его на одной карте или распределить между двумя. Для эффективного управления памятью используется постраничный KV-кэш, а передача данных между картами происходит асинхронно.

Что видно по README

Это движок для инференса LLM с нуля, реализующий стратегию раздельного выполнения (disaggregation) для повышения пропускной способности. Он поддерживает три режима работы: совмещённый, раздельный и адаптивный, который выбирает оптимальный путь на лету. Включает полный стек: собственные CUDA-ядра, менеджер памяти, планировщик и бенчмарк с реалистичной нагрузкой.

Ключевые возможности

Адаптивный маршрутизатор на основе аналитической модели стоимостиПостраничный KV-кэш с copy-on-write для beam searchЧанкованная предобработка для длинных промптовАсинхронная передача данных между GPUБенчмарк с Пуассоновским распределением запросов

Технологии

PythonPyTorchCUDANumPySciPy

Интересный факт

Марш0тизатор не использует предобученные модели или оракула — все параметры (скорость prefill/decode, коэффициент интерференции, пропускная способность) измеряются прямо на железе при запуске.

С чего начать

  • Клонировать репозиторий
  • Установить зависимости (Python 3.10+, PyTorch, CUDA)
  • Запустить демо examples/demo_collocated.py на одной GPU

Оценка GitRadar

Удобство
6/10
Свежесть
9/10
Перспектива
8/10
Монетизация
7/10
Общая оценка
7/10

Вердикт GitRadar

Стоит попробовать, если вы работаете с развёртыванием LLM и имеете доступ к нескольким GPU. Это исследовательский проект с полной реализацией интересной концепции, но требует глубоких знаний в CUDA и системном программировании.

Наблюдения по обновлениям

Проект активный, с детальным README, демо и полной реализацией, но звёзд пока немного — это нишевая техническая разработка.

Что мы проверили

Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.

Исходный репозиторий
https://github.com/HJCheng0602/nanoPD
Лицензия
MIT
Создан на GitHub
11 апреля 2026 г.
Последнее обновление репо
11 апреля 2026 г.
Последняя проверка GitRadar
11 апреля 2026 г.
Изученные файлы
README.md, nanoPD/paged_attention/csrc/paged_attention_optimized/index.h, examples/demo_collocated.py, examples/demo_multiGPU.py, nanoPD/paged_attention/setup.py, nanoPD/workers/collocated_worker.py

FAQ

Что это такое?

Движок для выполнения LLM, который ускоряет работу, распределяя задачи между видеокартами.

Для кого подходит?

Для инженеров, которые разворачивают языковые модели в продакшене и хотят выжать максимум из железа.

Источники

  • GitHub исходный код и активность
  • README описание, ссылки, стартовые материалы

Нужна помощь с HJCheng0602/nanoPD?

Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.