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

Старое майнинговое железо для локальных LLM: опыт запуска Flash Next на трёх RTX 3060 12GB

Разбираем кейс запуска Flash Next через Strata на трёх RTX 3060 12GB: 38-40 токенов в секунду против 13,2 т/с у llama.cpp, состав сборки на майнинговой платформ

Коротко

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

  1. 01

    Что известно о запуске Flash Next на трёх RTX 3060 12GB

  2. 02

    Конфигурация сборки: что внутри майнинговой платформы

  3. 03

    Flash Next, Strata и IQ3: что это и как связано

  4. 04

    Сколько токенов в секунду реально ждать от RTX 3060 в LLM

Что известно о запуске Flash Next на трёх RTX 3060 12GB

Пользователь /u/MD_Reptile опубликовал в сообществе r/LocalLLaMA отчёт о запуске Flash Next на сборке из трёх RTX 3060 12GB, собранной из деталей бывшей майнинговой фермы. По его словам, через среду Strata с квантованием IQ3 система выдаёт 38-40 токенов в секунду, тогда как llama.cpp на той же конфигурации показывает 13,2 т/с (отчёт автора сборки).

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

Оговорка, которую нельзя пропустить: это опыт одного человека без независимой проверки. Модель, её размер, длина контекста, версии Flash Next, Strata и llama.cpp, а также методика замера в сообщении не раскрыты. Автор сам задаётся вопросом, есть ли у других пользователей похожие результаты, то есть относится к собственным цифрам как к предварительным.

Ключевые цифры кейса: 38-40 т/с против 13,2 т/с

Две цифры формируют весь смысл публикации. Flash Next через Strata с квантом IQ3 даёт 38-40 токенов в секунду на декодинге. llama.cpp на том же стенде выдаёт 13,2 т/с. Разница почти втрое при одинаковых видеокартах, одном процессоре и одной оперативной памяти.

Что именно измерял автор, из текста не следует. Нет длины промпта, нет длины контекста, нет данных о параллельных запросах. Без этих параметров сравнивать числа с чужими конфигурациями бессмысленно: на коротком контексте и на 32k токенов один и тот же стенд может различаться по скорости в разы. Приведённые 38-40 т/с стоит читать как «на этой сборке так получилось», а не как норму для трёх RTX 3060.

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

Почему это единичный кейс, а не подтверждённый бенчмарк

Любые цифры из форумного поста имеют три уровня достоверности: сообщённый факт, воспроизведённый факт и подтверждённый разными людьми факт. Этот кейс остаётся на первом уровне. Независимых замеров нет, второго и третьего уровня тоже.

Что известно точно: три карты RTX 3060 12GB, квантование IQ3, Strata, 38-40 т/с генерации, llama.cpp, 13,2 т/с. Что неизвестно: какая именно модель запускалась, сколько она занимает памяти, какой контекст выставлен, какие версии ПО использованы, как считались токены. Разница между «токенами в секунду, посчитанными таймером на глаз» и замером через встроенный бенчмарк может быть заметной.

Практический вывод: цифры этого кейса годятся как ориентир порядка величин и как повод попробовать связку у себя. Строить на них расчёт нагрузки или обещать такие же результаты на другой сборке нельзя.

Конфигурация сборки: что внутри майнинговой платформы

Состав стенда автор перечислил без подробностей, но списка достаточно, чтобы разобрать роль каждого элемента (сообщение /u/MD_Reptile).

КомпонентЧто стоит в сборкеРоль при инференсе LLM
GPU3x RTX 3060 12GB36 ГБ суммарной VRAM под веса модели и KV-кэш
Материнская платаAsus Prime Z370PПодключение трёх карт через райзеры
CPUIntel Core i7 8-го поколенияЗагрузка весов, токенизация, работа ОС
RAM64 ГБ DDR4Буфер при загрузке модели и вспомогательные процессы
Питание1000 Вт, отдельные линии на карту и райзерСтабильность трёх GPU под нагрузкой
КаркасKingwin 8x mining rig frame, открытыйПродув и доступ к картам

Каркас стоит поверх второго каркаса, где живёт сервер на unraid. Такая компоновка типична для бывших ферм: открытая рама, минимум корпусных ограничений по длине карт и температуре.

Три RTX 3060 12GB: почему именно эта карта популярна для локальных LLM

У RTX 3060 12GB на рынке вторичного железа сложилась репутация народной карты для локальных моделей. Причина простая: 12 ГБ VRAM на карту при невысокой цене. Три таких платы дают суммарно 36 ГБ, а это уже другой класс моделей и квантов, чем помещается в одну карту.

Ограничение у схемы тоже есть, и оно архитектурное. RTX 3060 не имеет NVLink, поэтому карты общаются между собой через PCIe. При разбиении модели по слоям каждая карта ждёт данные от предыдущей, и на медленной шине это ожидание начинает влиять на итоговую скорость. Три платы добавляют памяти, но не гарантируют втрое больше токенов в секунду.

Платформа Asus Prime Z370P, i7 8-го поколения и 64 ГБ DDR4

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

64 ГБ DDR4 покрывают большинство домашних сценариев, включая загрузку тяжёлых GGUF-файлов с диска и работу сопутствующих сервисов. Asus Prime Z370P на чипсете Z370 к числу платформ с большим запасом линий PCIe не относится, и при подключении трёх карт через райзеры это стоит учитывать заранее. Платформа рабочая, но не топовая: она не мешает инференсу, пока не начинается активный обмен данными между картами.

Питание и райзеры: где чаще всего ошибаются

Автор отдельно отмечает, что блок питания на 1000 Вт имеет достаточно отдельных линий для каждой карты и каждого райзера. Это не мелочь, а условие стабильности. Питать две видеокарты от одной ветки нельзя: провод рассчитан на определённый ток, и при пиковой нагрузке он греется, а система перезагружается или выключается под нагрузкой.

Райзеры требуют отдельного питания, потому что слот PCIe не рассчитан на передачу большой мощности. Дешёвый райзер или переходник становится источником просадок и артефактов изображения. Открытый каркас Kingwin 8x mining rig frame решает вопрос продува, но добавляет другой: пыль. На открытой раме карты забиваются заметно быстрее, чем в закрытом корпусе, поэтому чистку придётся планировать регулярно.

Flash Next, Strata и IQ3: что это и как связано

В кейсе участвуют три сущности, и путать их не стоит. Flash Next - инструмент для инференса LLM, то есть то, что генерирует текст. Strata - среда запуска, через которую модель работала в этом эксперименте. IQ3 - метод квантования весов. Автор не раскрывает версии ни одного из компонентов, поэтому воспроизвести конфигурацию «один в один» по этому сообщению невозможно.

Почему квантование IQ3 важно для скорости и качества

Квантование снижает точность представления весов модели. Вместо 16 или 8 бит на параметр берётся 2-4 бита, файл модели уменьшается, в VRAM помещается больше слоёв, и чтение весов из памяти идёт быстрее. Для инференса это ключевой рычаг: генерация токена упирается в скорость чтения весов, а не в вычислительную мощность.

Обратная сторона - качество. Чем агрессивнее квант, тем выше шанс, что модель начнёт путать факты, ломать формат ответа или терять связность на длинном контексте. IQ-семейство квантов известно попыткой удержать качество на низких битностях за счёт умного распределения ошибки, но замеров качества в отчёте нет. Сколько именно потеряла конкретная модель на IQ3, из сообщения не выяснить (детали о влиянии квантования на выборку описаны в разборе выбора GPU для локальных LLM).

Чем Strata отличается от привычного запуска через llama.cpp

llama.cpp - самый распространённый способ запустить GGUF-модель локально: один бинарник, поддержка CUDA, Metal, Vulkan и CPU, разбиение слоёв по нескольким GPU. Strata в этом кейсе выступила альтернативой и показала на том же железе почти втрое больше токенов в секунду.

Почему так вышло, автор не объясняет. Возможных причин несколько: иначе распределённая нагрузка между тремя картами, другой способ работы с KV-кэшем, агрессивнее настроенный батчинг, иной вариант ядра под конкретную модель. Что из этого дало прирост, из сообщения не видно. Утверждать, что Strata всегда быстрее llama.cpp, на основании одного поста нельзя: сравнивать нужно на одинаковых модели, квантах и контексте, а таких замеров в отчёте нет.

Сколько токенов в секунду реально ждать от RTX 3060 в LLM

38-40 т/с на трёх RTX 3060 - это хороший результат для бюджетной сборки, но интерпретировать его без контекста нельзя. Скорость декодинга зависит от размера модели, типа квантования, длины контекста, размера батча и программной среды. Меняется любой из этих параметров, и цифра уезжает.

Что влияет на т/с больше всего

  • Размер модели: чем больше параметров, тем больше данных нужно прочитать на каждый токен.
  • Квантование: IQ3, Q4 или Q8 радикально меняют и объём в VRAM, и скорость чтения.
  • Длина контекста: KV-кэш растёт вместе с контекстом и съедает память, которую можно было отдать весам.
  • Число карт и способ обмена между ними: без NVLink данные идут через PCIe.
  • Версии драйверов и самого движка инференса.

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

Почему multi-GPU не всегда даёт линейный прирост

Логика «три карты - втрое быстрее» при инференсе LLM не работает. Каждая карта хранит свою часть слоёв, и во время генерации они обмениваются промежуточными активациями. Обмен идёт по PCIe, и при отсутствии прямого моста между GPU этот канал становится узким местом. Больше VRAM вы получаете почти всегда, больше скорости - только когда обмен успевает за вычислениями.

Как распределялась нагрузка в кейсе /u/MD_Reptile, не сообщается. Поэтому оценить, насколько хорошо масштабировалась его сборка, по опубликованным числам невозможно. Для сравнения, на картах с высокой пропускной способностью памяти декодинг растёт почти линейно от частоты памяти, что разбиралось в кейсе с разгоном CMP 170HX 40GB.

Риски и ограничения майнингового железа под LLM

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

Как проверить GPU перед покупкой

Универсальных тестов немного, но базовый набор есть. Прогоните карту под нагрузкой и посмотрите на температуру и частоты: перегрев или резкий сброс частот говорят о высохшей термопасте или забитом радиаторе. Проверьте изображение на артефакты и битые блоки. Дайте карте поработать в стресс-тесте подольше: часть дефектов проявляется только на прогретом чипе. Осмотрите вентиляторы и термопрокладки, у бывших майнинговых карт они часто в худшем состоянии, чем сами GPU.

В отчёте нет данных о состоянии конкретных карт автора, поэтому это общие практики, а не выводы из кейса. Воспринимайте их как способ снизить риск, а не как гарантию исправности.

Почему блок питания и райзеры - самое слабое место

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

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

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

Стоит ли собирать такую систему под локальные LLM

Кейс показывает, что путь рабочий. Он же показывает, насколько результат зависит от связки «модель + квант + движок». Разница втрое между двумя средами запуска на одном и том же железе - аргумент в пользу того, чтобы тратить время на подбор софта, а не только на покупку карт.

Кому подойдёт сборка на трёх RTX 3060 12GB

Портрет читателя, которому такая схема подходит: технический энтузиаст, готовый возиться с драйверами, райзерами и настройками движка; человек с доступом к вторичному рынку, где можно найти карты заметно дешевле новых; тот, кто понимает риски и не рассчитывает на гарантию.

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

Какие альтернативы есть на рынке

  • Одна более новая карта с большим VRAM: проще в сборке, меньше точек отказа.
  • Бывшие майнинговые платы и карты нестандартных форматов, включая кластеры из нескольких плат, как в сборке на пяти BC-250.
  • Гибридные схемы, где APU и дискретная карта делят модель между собой (кейс llama-halo-hybrid).
  • Аренда облачных GPU: плата за время, зато без обслуживания и рисков вторичного железа.

Объективно лучшего варианта здесь нет. Считайте стоимость владения: три старых карты плюс блок питания, платформа и время на сборку против одной новой карты с меньшим суммарным VRAM.

Что делать, если вы хотите повторить опыт

Точные настройки из кейса не раскрыты, поэтому повторение неизбежно превратится в эксперимент. Зато порядок действий понятен.

Минимальный набор шагов для старта

  1. Определите модель и класс задач: чат, код, длинный контекст.
  2. Посчитайте требуемую память: веса плюс KV-кэш с запасом.
  3. Выберите квантование под этот объём.
  4. Подберите карты и проверьте, что суммарной VRAM хватает с запасом на контекст.
  5. Соберите стенд с блоком питания, где на каждую карту и райзер идёт отдельная линия.
  6. Проверьте стабильность под нагрузкой перед длинными прогонами.
  7. Установите движок и замерьте скорость на своей модели и своём контексте.

Отчёт /u/MD_Reptile - пример, а не инструкция. Версии Flash Next, Strata и llama.cpp в нём отсутствуют, как и параметры запуска, поэтому часть работы придётся делать самому.

Как замерять производительность корректно

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

Ведите лог запусков. Через несколько экспериментов станет видно, что реально даёт прирост на вашей сборке: смена кванта, другой движок или более длинный контекст. Опубликованные 38-40 т/с против 13,2 т/с - хороший повод провести такой замер самостоятельно и сравнить со своими условиями (исходный отчёт).

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