Четыре RTX 3060 Ti по 8 ГБ, оставшиеся от майнинговой фермы, дают 32 ГБ суммарной VRAM и 70-120 токенов/с на модели класса 27B. Автор кейса в r/LocalLLaMA решил не покупать новую видеокарту, а вложить те же деньги в материнскую плату и CPU, чтобы задействовать карты, которые иначе лежали бы без дела. Работает это за счёт tensor parallel: одна модель распределяется по всем четырём GPU.
Оговорка сразу: это личный опыт одного стенда, а не независимый бенчмарк. Цифры ниже зависят от версий ПО, квантования и настроек. Если карты у вас уже есть, дополнительные расходы сводятся к платформе: материнская плата с несколькими PCIe-слотами, CPU и блок питания. Если покупать четыре 3060 Ti с нуля, экономика другая, и часто выгоднее взять одну карту с большим объёмом памяти.
Зачем собирать AI-сервер из четырёх RTX 3060 Ti, а не покупать новую карту
Логика сборки: старые карты от майнинговой фермы уже есть, значит вложения идут только в материнскую плату и CPU. Четыре карты по 8 ГБ складываются в 32 ГБ VRAM, чего хватает на модель класса 27B в квантовании. Производительность обеспечивает tensor parallel, который не поддерживается в llama.cpp, поэтому стек пришлось менять.
Что даёт 32 ГБ VRAM на четырёх картах
32 ГБ суммарной памяти позволяют запускать модели уровня 27B в квантовании. В кейсе используется Swift-Qwen3.8-27B: в квантовании EXL3 модель работала с контекстом 196k, а в vLLM с весами W4A16 дала 150k контекста при ~120 токенов/с. Максимум по контексту в этом сценарии - 262k, но только с квантованием KV-кэша до kv8.
Важная поправка: 32 ГБ, размазанные по четырём картам, не равны 32 ГБ на одной карте. Модель должна помещаться при распределении по GPU, а обмен данными между устройствами съедает часть производительности. Для 27B в 4-битном квантовании запаса хватает, для моделей крупнее 70B без агрессивной квантизации уже нет.
Ограничения конфигурации: 8 ГБ на карту и 110 Вт
8 ГБ на карту - мало для современных моделей. Без tensor parallel и квантования конфигурация теряет смысл: каждый GPU получает небольшой фрагмент модели, и объём полезных вычислений на карту падает.
Вторая граница - питание. Карты ограничены по мощности до 110 Вт каждая. Это снижает тепловыделение и требования к блоку питания, но ограничивает пиковую производительность. Для сборки нужна материнская плата с несколькими PCIe-слотами и CPU, который не станет узким местом при обслуживании четырёх GPU. Готовым решением «из коробки» такой стенд не бывает: это конфигурация для тех, кто готов настраивать.
Почему tensor parallel решает всё и при чём тут llama.cpp
Как tensor parallel распределяет модель между GPU
Tensor parallel делит слои модели между несколькими GPU. Каждая карта считает свою часть матричных операций, результаты синхронизируются между устройствами на каждом слое. Модель загружается не в память одной карты, а распределяется по всем четырём, и все они работают одновременно. Альтернатива - разложить слои последовательно, когда карты включаются по очереди: суммарная VRAM растёт, а параллелизма и прироста скорости почти нет.
Цена подхода - обмен данными между картами на каждом шаге. На PCIe без NVLink это заметная задержка, но именно она позволяет уместить 27B и длинный контекст в 32 ГБ. Похожий сценарий с tensor parallelism через PCIe разобран в материале про Qwen3.8-27B с контекстом 1 млн токенов на двух RTX 5090.
Почему llama.cpp не подходит для этой конфигурации
llama.cpp не поддерживает tensor parallel. Слои по нескольким GPU он раскладывать умеет, поэтому четыре карты в принципе использует, но эффективность на такой конфигурации ниже: часть карт простаивает, пока считает другая. Автор кейса прямо называет tensor parallel причиной перехода на Exl3 от Turboderp.
Это не делает llama.cpp плохим инструментом. На одной карте или при большом объёме VRAM он даёт предсказуемый результат и широкую поддержку квантованных GGUF-моделей. Речь о конкретной задаче: выжать скорость из четырёх карт по 8 ГБ. Поддержка функций в движках меняется, поэтому перед выбором стоит сверяться с документацией актуальной версии.
Exl3 от Turboderp: первый рабочий вариант с tensor parallel
Exl3 - решение от Turboderp, которое даёт tensor parallel и стало первым рабочим вариантом в этом кейсе. Для запуска нужна модель в совместимом квантовании EXL3, в примере - Swift-Qwen3.8-27B. Конкретные шаги установки, флаги и параметры зависят от версии Exl3 и самой модели, поэтому ориентироваться нужно на официальную документацию проекта: переносить команды из одного кейса вслепую не стоит.
Как запустить Exl3 и что нужно учесть
Автор использовал спекулятивное декодирование MTP вместе с контекстом 196k. MTP (Multi-Token Prediction) предсказывает несколько токенов за шаг, что поднимает скорость генерации, но требует совместимой модели и поддержки со стороны движка. Что именно попадает в бюджет VRAM при длинном контексте, зависит от размера KV-кэша, поэтому параметры стоит подбирать под свою задачу, а не копировать наугад.
Результаты: 70 токенов/с и контекст 196k
На Swift-Qwen3.8-27B в квантовании EXL3 с MTP и контекстом 196k получилось около 70 токенов/с. Автор описывает результат как рабочий и отмечает, что конфигурация ведёт себя хорошо в повседневном использовании. Это цифра одного стенда: другая версия ПО, другой режим или другая модель дадут иные значения.
70 токенов/с достаточно для интерактивной работы, генерации кода и агентных сценариев, где узкое место чаще в prefill длинного промпта, чем в скорости декодирования. Если нужна скорость выше, следующий шаг - vLLM.
Переход на vLLM с HyperQwen: 120 токенов/с и контекст до 262k
Что такое HyperQwen и почему он важен для Ampere
HyperQwen - репозиторий, ориентированный на карты Ampere, с поддержкой TP=4. Именно он позволил запустить vLLM на четырёх RTX 3060 Ti: без готовой конфигурации под конкретную архитектуру и число карт связка не заработала бы так, как в кейсе. Для других архитектур нужны другие ветки или конфигурации, и это часть практической работы, а не официальная рекомендация вендора.
bf16 против kv8: скорость или контекст
С моделью Swift-Qwen3.8-27B-W4A16-syv-fast в vLLM доступны два режима:
- bf16: контекст 150k, около 120 токенов/с;
- kv8 (квантование KV-кэша): контекст 262k, около 70 токенов/с.
Обе цифры приводит автор кейса. Механика простая: сжатие KV-кэша уменьшает память под ключи и значения, поэтому в тот же объём VRAM помещается больше токенов контекста. Плата - потеря точности представления KV и падение скорости. Как квантование KV ведёт себя на длинном контексте и какие замеры по этому поводу существуют, разобрано в статье про kvarn, KV-кэш и ускорение на длинном контексте.
Практический выбор: bf16, если важна скорость одного агента и хватает 150k контекста; kv8, если нужны длинные документы или несколько параллельных сессий и можно пожертвовать скоростью.
Два параллельных агента почти без просадки
Автор отмечает, что может запустить либо одного агента на 120 токенов/с, либо двух параллельных агентов с большим контекстным окном, причём concurrency почти не даёт просадки по скорости. Для домашнего стенда это важнее пиковых цифр: сервер обслуживает две независимые задачи без заметной деградации. Экстраполировать результат на другие модели и конфигурации нельзя, но как ориентир при планировании нагрузки он полезен.
Exl3 или vLLM: что выбрать на 4×RTX 3060 Ti
Критерии выбора: скорость, контекст, сложность настройки
| Вариант | Контекст | Скорость | Особенности |
|---|---|---|---|
| Exl3, Swift-Qwen3.8-27B в EXL3, MTP | 196k | ~70 токенов/с | Первый рабочий вариант в кейсе, нужна модель в квантовании EXL3 |
| vLLM, Swift-Qwen3.8-27B-W4A16-syv-fast, bf16 | 150k | ~120 токенов/с | Требует HyperQwen с TP=4 под Ampere |
| vLLM, та же модель, kv8 | 262k | ~70 токенов/с | Квантование KV снижает точность представления кэша |
Разница по сложности тоже реальна. Exl3 стал первым вариантом, который заработал, а для vLLM пришлось искать репозиторий под Ampere с поддержкой TP=4. Если вы не готовы разбираться с конфигурацией под конкретную архитектуру, старт с Exl3 дешевле по времени.
Когда Exl3 всё ещё имеет смысл
Exl3 остаётся рабочим вариантом, если нужно быстро получить tensor parallel без возни с vLLM и HyperQwen. Он даёт 196k контекста и около 70 токенов/с, чего хватает для многих задач: работа с кодом, длинные документы, агентные циклы. Если вы не гонитесь за максимумом скорости и не нуждаетесь в 262k контекста, Exl3 проще. Утверждать, что один инструмент лучше другого вообще, по одному кейсу нельзя.
Ограничения и реальные сценарии использования 4×3060 Ti
Что реально тянет такая конфигурация
На примере автора: Swift-Qwen3.8-27B в EXL3 и Swift-Qwen3.8-27B-W4A16-syv-fast в vLLM. Контекст от 150k до 262k в зависимости от режима, скорость от 70 до 120 токенов/с, два параллельных агента почти без просадки. Этого достаточно для локального инференса, работы с длинными документами и агентных сценариев.
Для сравнения: похожий класс задач поднимается и на одной карте. В кейсе с Qwen 3.8 27B на RTX 3090 агент работал 21 день при квантовании Q4 и KV-кэше Q8 с контекстом 200k, но с заметно меньшей скоростью prefill. Многокарточный стенд выигрывает там, где нужны одновременные сессии и большой контекст, а не разовая генерация.
Где начинаются проблемы
8 ГБ на карту означают, что без квантования и tensor parallel конфигурация не работает. Лимит 110 Вт на карту ограничивает пиковую производительность. Настройка требует времени и понимания tensor parallel, vLLM и HyperQwen. Не для всякой модели найдётся подходящая квантованная версия. Если нужны модели крупнее 27B или максимальная скорость без квантизации, четыре 3060 Ti не подойдут.
Все приведённые цифры получены одним человеком на одном стенде и зависят от версий ПО и параметров запуска. Гарантировать повторение результата на другой сборке нельзя.
Практические выводы: кому подходит сборка из четырёх RTX 3060 Ti
С чего начать, если у вас уже есть 4×3060 Ti
- Проверьте материнскую плату и CPU: нужно достаточное число PCIe-слотов и пропускная способность, чтобы четыре GPU не простаивали в ожидании данных.
- Выберите первый инструмент. Exl3 даёт более простой старт, vLLM с HyperQwen - больше скорости и контекста, но требует поиска репозитория с TP=4 под Ampere.
- Подготовьте модель Swift-Qwen3.8-27B в подходящем квантовании: EXL3 для Exl3, W4A16 для vLLM.
- Сверьте версии ПО и параметры запуска с документацией проектов.
- Определитесь с режимом KV: bf16 для скорости, kv8 для контекста 262k.
Ориентиры по запуску Qwen3.8 27B на картах с небольшим объёмом памяти и по проверке длинного контекста собраны в материале про пресеты для RTX 5060 Ti и харнесс для длинного контекста.
Когда лучше смотреть на другие варианты
Если старых GPU нет и карты покупаются с нуля, стоит посчитать вариант с одной картой большого объёма VRAM: меньше карт означает меньше накладных расходов на синхронизацию и меньше возни с платформой. Если нужны модели крупнее 27B, четыре 3060 Ti упрутся в 32 ГБ и квантование. Если не хочется разбираться с tensor parallel, HyperQwen и настройкой vLLM, сборка съест время, и это честная часть уравнения.
Стартовое действие для владельца четырёх 3060 Ti: проверьте слоты и питание платформы, запустите Exl3 с моделью в совместимом квантовании, замерьте скорость и контекст на своих задачах. И только после этого решайте, нужен ли переход на vLLM ради 120 токенов/с в bf16 или 262k контекста в kv8.