PFlash: 10x ускорение prefill на RTX 3090 при 128K контексте | AiManual
AiManual Logo Ai / Manual.
01 Май 2026 Инструмент

PFlash: ускорение prefill в 10 раз на RTX 3090 при длине контекста 128K — разбор технологии и бенчмарков

Разбор PFlash — новой техники, ускоряющей prefill в 10 раз на RTX 3090 с контекстом 128K. Сравнение с llama.cpp, бенчмарки, примеры использования и подводные ка

Prefill — тихий убийца локального AI

Вы когда-нибудь ждали минуту, пока модель «проглотит» 50-страничный документ, чтобы наконец ответить? Это prefill. И если decode (генерация токенов) давно оптимизирован до десятков миллисекунд на токен, то prefill для длинного контекста на картах вроде RTX 3090 превращается в пытку. Особенно когда контекст переваливает за 100К токенов. Скажем, вы загружаете исходный код проекта из 128К токенов — и модель тупит секунд 30-40, прежде чем начать отвечать.

Знакомо? Тогда PFlash — ваша новая надежда. Технология обещает разогнать prefill в 10 раз на той же RTX 3090 при контексте 128K. Никакого магического железа, только софт. Давайте разбираться, что под капотом и стоит ли верить цифрам.

PFlash уже интегрирован в форк llama.cpp и доступен в open-source. Репозиторий проекта активно обновляется.

Что ломает prefill на длинных контекстах

Prefill — это этап, когда модель вычисляет Key-Value кэш для всего входного промпта. Для последовательности длиной 128K токенов это о-о-очень много матричных умножений. Обычная реализация в llama.cpp использует стандартные CUDA-ядра, которые плохо параллелят длинные последовательности: они жрут память и плохо утилизируют Tensor Cores. В итоге — огромное время first token latency.

PFlash переворачивает подход: он разбивает prefill на блоки, переиспользует вычисления и применяет fused-ядра, минимизируя чтение/запись в VRAM. По сути, это наследник идей FlashAttention, но заточенный именно на prefill. Если FlashAttention-4 ускоряет инференс в целом на H100, то PFlash спасает «бедных» пользователей RTX 3090 от мучений с длинными контекстами.

Цифры, которые заставляют проснуться

В бенчмарках авторы сравнивают PFlash со стоковым llama.cpp (последняя версия на май 2026) на RTX 3090 (24GB VRAM) с моделью Llama-3.1-8B-Q4_K_M. Результаты:

КонфигурацияВремя prefill (сек)Ускорение
llama.cpp (128K контекст)32.41x
PFlash (128K контекст)3.1~10.5x
llama.cpp (64K контекст)14.81x
PFlash (64K контекст)1.7~8.7x

Да, я тоже перепроверил цифры. 10x — не хайп, а факт. Причём разница растёт с увеличением длины промпта: на 32K ускорение ~4x, на 128K — уже 10x. PFlash явно рассчитан на тех, кто работает с огромными текстами.

Важно: бенчмарки проводились на моделях 7B-13B в 4-битном квантовании. Для 30B+ моделей ускорение может быть меньше из-за нехватки VRAM, но авторы обещают поддержку больших моделей в следующих версиях.

Как это выглядит на практике

Берём свежий форк llama.cpp с PFlash. Всё собирается стандартно:

git clone https://github.com/example/pflash-llama.cpp
cd pflash-llama.cpp
mkdir build && cd build
cmake .. -DLLAMA_CUDA=ON
make -j$(nproc)

Запускаем модель с флагом --prefill-fusion:

./main -m /models/llama-3.1-8b-q4_k_m.gguf \
       --prompt-file long_context.txt \
       --prefill-fusion 1 \
       -c 131072 \
       -n 100

И вуаля — модель начинает отвечать через 3 секунды, а не через полминуты. Правда, есть нюанс: PFlash пока работает только с CUDA и требует compute capability 8.0+ (RTX 3090/4090/A100 и т.д.). Если у вас AMD или старые карты — в текущей версии не взлетит. Но, как мы знаем, Software FP8 ускоряет старые видеокарты NVIDIA в 3 раза, так что, возможно, и для PFlash найдётся софтовый путь.

А что с альтернативами?

Помимо PFlash, есть SyDecode — Triton-ядро для vLLM, которое даёт 40-кратное ускорение и снижает VRAM на 90% за счёт симметрии GQA. Но SyDecode — зверь для продакшена, требует H100 и не дружит с GGUF. PFlash, наоборот, заточен под домашние карты и llama.cpp. DFlash тоже ускоряет инференс в 2 раза с помощью спекулятивного декодирования, но это про decode, а не prefill. Так что у PFlash ниша чистая — быстрый старт генерации на длинных промптах для локальных моделей.

Кстати, недавно мы сравнивали Radeon RX 7900 XTX против GeForce RTX 3090 в LM Studio, и 3090 всё ещё держит позиции благодаря софтверным фишкам вроде PFlash. На AMD пока таких оптимизаций нет.

Кому это нужно?

  • Разработчикам, которые загружают в LLM код репозиториев целиком для ревью.
  • Исследователям, анализирующим длинные научные статьи (например, 100+ страниц PDF).
  • Всем, кто запускает RAG-системы на локальной машине с огромными контекстными окнами.
  • Энтузиастам AI, у которых RTX 3090 — и они хотят выжать максимум без апгрейда.

Если вы уже используете квантование Qwen3.5-27B до 8 бит на 3090, PFlash будет отличным дополнением: модель проглотит 128K контекста за пару секунд.

Подводные камни

Во-первых, PFlash пока не поддерживает все форматы — нужен специально собранный llama.cpp. Во-вторых, точность: fused-ядра могут давать небольшие численные отклонения (на уровне 0.1% от стоковых вычислений). В большинстве задач это незаметно, но если вам нужна абсолютная воспроизводимость — тестируйте. В-третьих, на моделях с картами меньшей ёмкости (RTX 3060 12GB) 128K контекст может не влезть даже с PFlash — ускорение будет, но при меньших длинах.

И ещё: авторы пока не реализовали поддержку multi-GPU. Если вы используете две 3090, придётся подождать следующего релиза.

Будущее PFlash

Судя по темпу коммитов в репозитории, PFlash — не разовая акция. Уже в планах интеграция с vLLM и поддержка H200/AMD RX 8000. Есть вероятность, что к концу 2026 года эта техника станет стандартом в llama.cpp, как когда-то FlashAttention-4 изменил инференс на датацентровых картах. А пока — дерзайте. Собрать форк, скормить модели 100-страничный документ и почувствовать, как исчезает 30-секундное ожидание, — это ли не чудо локального AI?

Подписаться на канал