Перейти к содержанию
Публикация AiManual

Разблокировка вычислений Nvidia на китайских RTX 3080 20GB: что реально даёт +20% к prefill в vLLM

Разбор тестов Zaggita на двух китайских RTX 3080 20GB: разблокировка вычислений Nvidia дала +20,8-28,6% к prefill и снизила TTFT на 17-22% в vLLM 0.32.0, при эт

Коротко

Что будет в материале

  1. 01

    Что такое разблокировка вычислений Nvidia и почему она вообще влияет на LLM-инференс

  2. 02

    Тестовый стенд Zaggita: две китайские RTX 3080 20GB, Threadripper 1920X и Proxmox

  3. 03

    Цифры: как растёт prefill и падает TTFT с длиной промпта

  4. 04

    Decode не ускорился: как правильно читать эти замеры при включённом MTP

Пользователь под ником Zaggita опубликовал замеры разблокировки вычислений Nvidia на двух китайских RTX 3080 20GB. После снятия ограничения prefill в vLLM 0.32.0 вырос на 20,8% на промпте 8 192 токена и на 28,6% на 261 900 токенах, а TTFT (время до первого токена) упал на 17,2-22,3%. Скорость декодирования не изменилась.

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

Цифры стоит держать в голове с поправками. Это один тест на одном стенде, карты во время прогона упирались в тепловой троттлинг, а метрика декодирования измерялась в шагах, а не в токенах в секунду. Ниже разбор того, что именно даёт разблокировка, где эффект максимален и какие ограничения есть у самих замеров.

Что такое разблокировка вычислений Nvidia и почему она вообще влияет на LLM-инференс

Nvidia ограничила скорость вычислений на потребительских картах для части специфичных аппаратных инструкций, которые нужны AI-нагрузкам. Разблокировка снимает это ограничение, и движок инференса получает более быстрый путь выполнения тех же самых операций. Метод опубликовал Zaggita, позже его повторил пользователь No-Refrigerator-1672 на китайских RTX 3080 20GB.

Видеокарта при этом не превращается в другой продукт: объём памяти остаётся прежним, игры и рендер не ускоряются, новых функций не появляется. Меняется пропускная способность конкретного класса вычислений, и это ровно тот класс, который доминирует при обработке промпта.

Prefill vs decode: почему ускорение достаётся только одной фазе

Инференс LLM делится на две фазы с разной природой нагрузки. Prefill обрабатывает весь промпт сразу: тысячи токенов проходят через слои модели параллельно, и работа упирается в вычислительные блоки GPU и частоту ядра. Decode генерирует токены по одному, последовательно, и здесь узкое место смещается к пропускной способности памяти и задержкам.

Отсюда следует предсказание: снятие ограничения на инструкции должно ускорить prefill и почти не тронуть decode. Замеры Zaggita это подтверждают, и именно совпадение теории с цифрами делает результат правдоподобным. Похожая логика видна в других кейсах, где борьба шла за скорость обработки контекста, а не за скорость генерации: например, в эксперименте с форком Strata на POWER9 и четырёх Tesla V100 prefill вырос с 130 до 7350 ток/с при куда более скромном рывке decode.

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

Тестовый стенд Zaggita: две китайские RTX 3080 20GB, Threadripper 1920X и Proxmox

Конфигурация описана в источнике полностью, и это важно для сверки: переносить проценты на произвольное железо без такой сверки нельзя.

  • Две китайские RTX 3080 20GB, обе в слотах PCIe 3.0 x16.
  • Процессор Threadripper 1920X.
  • Лимит мощности на каждой карте: 240 Вт.
  • Платформа Proxmox 9.2.3, ядро Linux 6.14.11-9-pve.
  • Проприетарные драйверы Nvidia 610.57.04, CUDA 13.3.
  • Движок: vLLM 0.32.0 внутри LXC-контейнера Debian 13, режим tensor parallel на двух GPU.
  • Модель: cyankiwi/Swift-1.5-Qwen3.8-27B-AWQ-INT4, KV-кэш в fp8, MTP включён.

Это потребительские карты в виртуализации, а не датацентровые ускорители. Никаких A100, H100 и NVLink в стенде нет, связь между GPU идёт через PCIe 3.0. Слоты работают на полной ширине x16, и prefill всё равно ускорился, значит в этой конфигурации упор был в вычисления, а не в шину. Обратное утверждение проверить нечем: если бы карты стояли в x4, выводы могли бы отличаться.

Почему важен именно LXC и tensor parallel

LXC-контейнер даёт почти прямой доступ к драйверу и устройствам, в отличие от полноценной виртуальной машины с пробросом GPU, где добавляются свои накладные расходы. Для замеров с точностью до процентов это удобнее: меньше посредников между vLLM и картой.

Режим tensor parallel распределяет слои модели по двум GPU, и prefill масштабируется по обеим картам сразу. Один и тот же промпт обрабатывают два устройства, каждое со своим ограничением по инструкциям, поэтому снятие лимита удваивает эффект в абсолютных цифрах. Утверждать, что результат повторится в ВМ с vGPU или на одном GPU, источник оснований не даёт.

Цифры: как растёт prefill и падает TTFT с длиной промпта

Автор прогнал один и тот же набор замеров до и после разблокировки на шести длинах промпта. Промпты генерировались случайно, поэтому попаданий в prefix cache не было и кэш не искажал картину.

Промпт, токеновTTFT до, мсTTFT после, мсΔ TTFTPrefill до, ток/сPrefill после, ток/сΔ prefill
8 1928 4717 013-17,2%9671 168+20,8%
16 38417 57314 418-18,0%9321 136+21,9%
32 76836 75429 970-18,5%8921 093+22,6%
65 53679 43264 173-19,2%8251 021+23,8%
131 072183 593146 010-20,5%714898+25,7%
261 900465 890362 192-22,3%562723+28,6%

Закономерность читается по последнему столбцу: прирост монотонно ползёт вверх вместе с длиной контекста. Абсолютные значения prefill при этом падают, что нормально для длинного контекста и двух карт с 20 ГБ. На 261 900 токенах TTFT после разблокировки всё равно около шести минут, так что это сценарий батчевой обработки или агентной задачи, а не интерактивный чат.

Почему на длинных промптах выигрыш больше

Время prefill складывается из полезной вычислительной работы и накладных расходов на запуск, синхронизацию и служебные операции. На промпте в 8 тысяч токенов фиксированная часть заметнее, поэтому снятие ограничения на инструкции даёт лишь пятую часть. На 261 900 токенах вычислительная часть раздувается, и те же самые ускоренные инструкции отрабатывают почти на 29% быстрее.

Проценты совпадают и с падением TTFT: -17,2% на коротком промпте против -22,3% на самом длинном. Это не два независимых эффекта, а две метрики одного и того же ускорения.

Decode не ускорился: как правильно читать эти замеры при включённом MTP

В сводке автора прямо сказано: около +20% к prefill и 0% к decode. В таблице шаги декодирования меняются в пределах долей процента, например 16,05 против 15,98 шага в секунду на промпте 8 192 токена и 15,42 против 16,67 на другом прогоне. Разброс такого порядка лежит внутри обычного шума измерений.

Причина в том, что decode ограничен не вычислениями, а памятью: на каждый токен нужно прочитать веса и KV-кэш. Снятие лимита на инструкции эту стену не пробивает.

Что такое MTP и fp8 KV-кэш в этом сетапе

MTP (multi-token prediction, в конфигурации vLLM модуль qwen3_next_mtp) позволяет движку за один шаг принимать несколько токенов вместо одного. FP8 KV-кэш экономит видеопамять, что критично для контекста в четверть миллиона токенов на двух картах по 20 ГБ. Оба параметра входят в конфигурацию теста, и без их учёта сравнивать эти цифры с чужими бенчмарками бессмысленно.

Из-за MTP автор мерил ITL и скорость шагов декодирования, а не токены в секунду. Число токенов за шаг зависит от acceptance rate: при длине принятия от 0 до 3 каждый шаг выдаёт от 1 до 4 токенов, то есть теоретический коридор 15-60 ток/с. В реальных агентных задачах кодирования средняя длина принятия для этой модели колеблется около 2, что даёт примерно 45 ток/с. Тонкости измерения шагов декодирования при спекулятивном принятии разбираются и в кейсе radix-selection в llama.cpp с MTP-3 и f16 KV на двух RTX 3090.

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

Ограничения теста: троттлинг, лимит мощности и prefix cache

Главная поправка к цифрам: обе карты во время прогона упирались в лёгкий тепловой троттлинг и держали 1750 МГц вместо 1950 МГц, которые берут холодные карты. Автор оценивает, что при лучшем охлаждении получил бы примерно на 10% больше. То есть опубликованные проценты, скорее всего, нижняя граница для такого железа, а не потолок.

Промпты генерировались случайно, попаданий в prefix cache не было, поэтому замеры честные: искусственного ускорения за счёт повторного использования кэша в них нет. Для практики это значит, что в реальной работе с повторяющимися системными промптами выигрыш может размываться, потому что часть prefill вообще не выполняется.

Почему 320 Вт не дали прироста

Повторный прогон с лимитом мощности 320 Вт дал prefill и decode в пределах 2% от результатов при 240 Вт. Карты не упирались в энергопотребление, они упирались в частоту из-за температуры. Практический вывод: замена охлаждения или нормальный продув корпуса дадут больше, чем поднятие power limit в прошивке.

Кому и когда стоит пробовать разблокировку, а кому - нет

Разблокировка неофициальная: это вмешательство в поведение драйверов и прошивки, которого Nvidia не поддерживает. Возможны нестабильность, странные ошибки в неожиданных приложениях и потеря гарантии. Конкретные шаги и файлы я не привожу: в источнике описан результат, а не пошаговая процедура, и повторять её вслепую на рабочей машине рискованно.

Как воспроизвести сетап: чек-лист компонентов

  • Две RTX 3080 20GB (китайская ревизия) в слотах PCIe 3.0 x16, желательно с запасом по охлаждению.
  • vLLM 0.32.0 в Debian 13 LXC, режим tensor parallel на двух GPU.
  • Модель cyankiwi/Swift-1.5-Qwen3.8-27B-AWQ-INT4 с fp8 KV-кэшем и включённым MTP.
  • Драйверы Nvidia 610.57.04 и CUDA 13.3, как в тесте.
  • Снятие ограничения вычислений: сначала проверьте температуру и частоты под нагрузкой, потом повторяйте.

Если столько же VRAM есть на одной карте, сравнивать напрямую не получится: tensor parallel на двух GPU и одна карта ведут себя по-разному. Для 27B-модели на 16 ГБ существуют и другие пути, например инференс-движок Ninfer на RTX 4080 с контекстом 100K токенов, где ставка сделана на жёсткую квантизацию KV-кэша, а не на аппаратную разблокировку.

Когда метод имеет смысл: длинные промпты, prefill доминирует в общем времени запроса, карты холодные, а простой стенда обходится дороже риска. Когда не имеет: короткий чат, decode-bound нагрузка, температуры уже на пределе. И помните, что цифры получены на одном стенде одним автором, а его повторение другим пользователем подтверждает воспроизводимость эффекта, но не даёт универсального бенчмарка. Как читать подобные заявления и какие метрики проверять, разбирается в материале о «100% эффективности GPU» без маркетинга.

Итог: что запомнить про разблокировку вычислений Nvidia на RTX 3080 20GB

  • Разблокировка ускоряет prefill на 20,8-28,6% и снижает TTFT на 17,2-22,3% в конфигурации Zaggita.
  • Чем длиннее промпт, тем больше выигрыш: от +20,8% на 8 192 токенах до +28,6% на 261 900.
  • Decode не меняется: шаги декодирования остаются в пределах долей процента.
  • Лимит мощности 320 Вт дал разницу в пределах 2%, упор был в тепловой троттлинг на 1750 МГц вместо 1950 МГц.
  • Метод неофициальный, с рисками для стабильности и гарантии, и эффект подтверждён на конкретном стенде, а не на любом железе.

Если ваш пайплайн тратит основное время на обработку длинного контекста, разблокировка стоит эксперимента на отдельной машине. Если вы гонитесь за токенами в секунду в ответе, ищите узкое место в другом месте.

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