Что за патчи и почему они важны для владельцев Tesla P100
Mrinohk опубликовал набор патчей llama.cpp, заточенных под одну конкретную задачу: запустить MoE-модель Unsloth Qwen3.6 35B A3B UD Q4 K XL на паре Tesla P100. Это эксперимент, а не официальный релиз проекта и не готовая сборка. Автор сам не советует ставить конфигурацию как основную рабочую без тестов и подгонки параметров.
За основу взяты известные патчи shinbunbun под P100, которые заявляют прирост около 70% на декодировании. Поверх них добавлены две идеи из движка под RTX 3090: persistent megakernels и сокращённый draft-словарь. Цель публикации скромная и конкретная: дать базу нескольким десяткам владельцев P100 и отправную точку для дальнейших оптимизаций под другие модели. Исходное сообщение с деталями и предупреждениями автора.
Смысл затеи в том, что Tesla P100 с 16 ГБ памяти до сих пор продаются на вторичном рынке за небольшие деньги, и часть сообщества ищет способы выжать из них приемлемую скорость для локальных LLM. Реальные ограничения этой карты, стоимость входа и практический предел контекста разобраны в отдельном материале про Tesla P100 за $100: там же цифры после патчей shinbunbun на одной карте.
Технические приёмы: что именно оптимизировано и откуда взято
В основе набора лежат три источника идей, и это важно понимать до запуска: готовая база оптимизаций под Pascal, техника из чужого движка и сокращение словаря для спекулятивного декодирования. Патчи гипер-сфокусированы на P100 и на одной модели, поэтому переносить их на другое железо или другую модель без правок бессмысленно. Как выглядят похожие эксперименты с MoE-инференсом на другой архитектуре, видно в разборе оптимизации MoE в llama.cpp на RTX 4080: там патчи дают прирост на промптах и редактировании кода, но находятся и регрессии.
Патчи shinbunbun как база
Shinbunbun известен набором патчей под Tesla P100 для llama.cpp, которые заметно поднимают скорость. Заявленный ориентир: около 70% прироста на декодировании. Mrinohk взял их как отправную точку, отметив, что они «полу-известные», то есть знакомы в первую очередь тем, кто целенаправленно ищет ускорение на старых датацентровых картах.
Одна оговорка, которую стоит держать в голове. С тех пор базовые патчи shinbunbun обновлялись, поэтому исходная база Mrinohk может не отражать текущую производительность только этих патчей. Иными словами, сравнивать его сборку с самой свежей версией оригинала некорректно, это разные срезы времени.
Persistent megakernels и reduced draft vocab из движка для 3090
Обе техники подсмотрены в проекте движка под RTX 3090 для модели Qwen3.8 27B, о котором вышла отдельная публикация. Mrinohk перенёс идеи на P100.
Persistent megakernels, если убрать жаргон, это способ заставить вычислительные ядра GPU работать дольше без постоянного перезапуска. Обычно каждое ядро запускается под свою порцию работы, и на множестве мелких запусков накапливаются накладные расходы. Когда ядро остаётся «живым» и берёт задачи одну за другой, этих накладных расходов становится меньше. На Pascal, где сам GPU не отличается высокой пропускной способностью накладных операций, экономия может быть заметной.
Reduced draft vocab относится к спекулятивному декодированию. Идея в том, что черновая модель, которая предлагает следующие токены, не обязана работать с полным словарём: сокращённый вариант дешевле по памяти и вычислениям. Это классический компромисс, где взамен части точности предикции вы получаете скорость.
Конкретных цифр прироста от этих двух техник на P100 в исходном сообщении нет. Владельцам 3090 будет полезен разбор другой конфигурации на этой карте: Qwen3 27B INT4 на RTX 3090 через vLLM с контекстом 144K, где разобрана арифметика памяти, параметры запуска и ограничения.
Тестовый стенд и его узкие места
Конфигурация, на которой автор проверял патчи:
- процессор Ryzen 7 5700X на стоковых частотах;
- 48 ГБ DDR4-3200;
- две Tesla P100 с лимитом 175 Вт на каждую;
- одна карта висит на PCIe 3.0 x4, вторая на x16.
Автор прямо называет стенд неоптимальным. Ограничение PCIe 3.0 x4 на одной из карт срезает пропускную способность шины, а для MoE-модели, где эксперты раскиданы по слоям и активно обмениваются данными, это ощутимый фактор. Вывод из этого простой: на нормальной PCIe-конфигурации производительность может быть немного выше, чем получилось у автора. Описание стенда и оговорки про PCIe приведены в том же сообщении.
Готовых цифр в токенах в секунду именно для связки из двух P100 в источнике нет, и подставлять их сюда не из чего. Есть только целевой ориентир, на который автор оглядывается: около 125 t/s на декодировании он видел у своего отчима на связке RTX 3060 12GB плюс RTX 3090 с моделью Ornith 1.5 в квантовании Q4_K_M. Это чужая конфигурация и другая модель, поэтому напрямую сравнивать с ней P100 нельзя. Держите его в голове как ориентир, а не как результат.
Лимит 175 Вт на карту тоже важен. P100 выпускались в разных вариантах исполнения, и снижение лимита мощности напрямую бьёт по частотам под нагрузкой. Если у вас карта с другим TDP и нормальным питанием, потенциал может отличаться, но об этом автор ничего не утверждает.
Настройка сэмплера: почему стандартные параметры не подходят
По наблюдениям автора, вывод модели требует донастройки сэмплера. Причина простая: патчи меняют поведение ядер, и качество генерации на привычных настройках ощущается иначе.
| Параметр | Было | Стало |
|---|---|---|
| Температура | 1.0 | 0.7 |
| min-p | 0.05 | 0.25 |
| top-k | 40 | 40 |
Менялись первые два параметра, top-k остался прежним. Логика здесь читается так: снижение температуры делает выбор токенов более предсказуемым, а поднятый min-p отсекает маловероятные варианты раньше, чем это делал прежний порог. Сам автор считает, что min-p 0.25, возможно, слишком жёстко, но оставляет значение, потому что в таком виде вывод его устраивает. Значения сэмплера и комментарий к ним приведены дословно, без округлений.
Отдельная деталь, о которой стоит помнить: модель на этой конфигурации ощущается немного иначе на практике. Это не значит, что она «сломана», но и не значит, что качество осталось прежним. Никаких замеров качества автор не приводил, поэтому относиться к выводу стоит как к субъективному впечатлению от повседневного использования.
Риски и ограничения: что нужно знать перед запуском
Патчи в основном написаны через генерацию кода моделью Claude Opus. Автор называет свой подход vibe coding и не скрывает этого: по его словам, он не может гарантировать стабильность сборки. Формулировка про работу с другими моделями ещё жёстче: он не гарантирует, что они вообще запустятся корректно.
Список ограничений, которые нужно принять до экспериментов:
- гарантий стабильности нет, набор собран при помощи генерации кода;
- патчи заточены под P100 и конкретную модель, на других моделях могут не работать вовсе;
- база shinbunbun с тех пор обновлялась, поэтому исходная точка автора может не совпадать с текущим состоянием оригинала;
- качество вывода требует ручной настройки сэмплера;
- автор не рекомендует эту сборку как основную рабочую конфигурацию без тестирования и настройки.
Отсюда практический вывод: относиться к набору стоит как к исследовательскому прототипу, а не как к инструменту для рабочего конвейера. Если вы планируете ставить такое на машину, от которой зависит продакшен, сначала проверяйте стабильность на своих задачах. Про то, как вообще оценивать громкие заявления о производительности GPU и какие метрики за этим стоят, стоит прочитать в разборе заявлений о «100% эффективности GPU».
Кому это подойдёт и стоит ли пробовать
Набор пригодится тем, у кого уже есть Tesla P100 и кто готов возиться: собирать патчи, проверять стабильность на своих промптах, крутить сэмплер. Такой сценарий ближе к хобби и экспериментам, чем к рабочему инструменту.
Не подойдёт тем, кому нужна предсказуемая конфигурация под ежедневные задачи. Автор прямо пишет, что не стал бы использовать это как основную сборку. Также не стоит рассчитывать на перенос на другие GPU или модели: патчи узкие по определению, а гарантий работы с другими моделями автор не даёт.
Важно понимать, что публикация закрывает не только вопрос «ускорится ли», но и вопрос воспроизводимости. Ценность здесь в том, что есть описанный стенд, перечисленные техники и честно названные ограничения. Этого достаточно, чтобы повторить путь и проверить результат на своём железе, не изобретая всё с нуля.
Других конфигураций автор не проверял и не заявляет обратного. Если у вас одна карта, другая модель или иной объём памяти, поведение патчей предсказать нельзя.
Итог: что мы узнали и что делать дальше
Mrinohk выложил экспериментальные патчи llama.cpp под пару Tesla P100 для модели Unsloth Qwen3.6 35B A3B UD Q4 K XL. В основе лежат патчи shinbunbun с заявленным приростом около 70% на декодировании, к ним добавлены persistent megakernels и сокращённый draft-словарь из движка под RTX 3090. Стенд автора неоптимален: одна карта ограничена PCIe 3.0 x4, обе зажаты лимитом 175 Вт.
Что делать, если тема ваша:
- Проверить, есть ли у вас именно P100 и достаточно ли памяти под выбранное квантование.
- Зафиксировать текущую конфигурацию и baseline-скорость до любых правок, чтобы было с чем сравнивать.
- Собрать патчи, начать с sampler temp 0.7 и min-p 0.25, top-k 40, а затем подгонять под свои задачи.
- Прогнать стресс-тест на длинных диалогах и убедиться, что сборка не падает и не выдаёт мусор.
- Поделиться результатами с сообществом, поскольку именно для этого публикация и делалась.
Если ставить эксперимент пока не хочется, разумный шаг промежуточный: посмотреть, как ведут себя патчи на других картах, и только потом решать, стоит ли вкладывать время в свою сборку. Для владельцев P100 исходная публикация с полными деталями и оговорками автора остаётся главным источником.