16 ГБ — это приговор? Не торопись
У тебя RTX 5070 Ti? Поздравляю. Но 16 ГБ VRAM — это насмешка, когда в зубах навязла 30B модель. Потому что Qwen 2.5 32B в Q4_K_M весит ~18 ГБ. Контекст на 4096 токенов — ещё 2 ГБ. Итог: CUDA out of memory.
Что обычно делают?
- Квантуют до Q2 — модель начинает бредить, теряет смысл. Не вариант.
- Покупают 24 ГБ карту за 100+ тысяч — бюджет не резиновый.
- Арендуют облако — но где кайф локального инференса без цензуры?
Я предлагаю другой путь. Берём старую карту, которая пылится в шкафу (или берётся за копейки с рук), и соединяем с новой. Получаем условные 22 ГБ VRAM. Хватит, чтобы запустить 30B модель в адекватном качестве.
Важно: это не магия NVLink. Память не складывается в единый пул — модель разделяется на слои между картами. Скорость упадёт, но модель поедет.
Почему это работает (и почему нет)
llama.cpp умеет распределять слои LLM по разным GPU через флаг --tensor-split. Ты просто указываешь, сколько гигабайт VRAM на каждой карте — и фреймворк сам разбивает модель на куски. На практике это выглядит так:
- Основная карта (16 ГБ) берёт на себя большую часть слоёв.
- Вторая карта (6 ГБ) добирает оставшиеся.
- Данные между картами гоняются по шине PCIe.
Звучит логично? Да. Но есть нюанс: если одна карта существенно медленнее другой (например, RTX 2060 против RTX 5070 Ti), слабая карта становится бутылочным горлышком. Скорость генерации упадёт до ~5-7 токенов/с вместо 20+. Но для чтения длинных ответов — терпимо.
Предупреждение: не пытайтесь комбинировать NVIDIA + AMD. Утилита CUDA не дружит с ROCm. Только NVIDIA с NVIDIA.
Что вам понадобится
- Основная видеокарта — RTX 5070 Ti (16 ГБ) или любая другая с ≥12 ГБ.
- Дополнительная карта — RTX 2060 (6 ГБ), GTX 1660 Super (6 ГБ) или даже GTX 1070 (8 ГБ). Чем больше суммарный VRAM, тем лучше.
- Материнская плата с двумя физическими слотами PCIe x16 (хотя бы x8).
- Блок питания 750W+ (с запасом по разъёмам 8-pin).
- Установленный llama.cpp с поддержкой multi-GPU — качаете официальную сборку или компилируете сами.
Пошаговый план: как превратить связку в рабочую лошадку
1 Физический монтаж — меньше магии, больше практики
Вставь дополнительную карту в свободный слот. Если материнка старая и слот работает в режиме PCIe 3.0 x4 — не страшно. Для инференса с LLM пропускной способности хватит (игры бы притормаживали, но мы не играем). Подключи питание — 8-pin для RTX 2060 обязателен.
Советую поставить старую карту подальше от основной — охлаждение. RTX 2060 греется нещадно, и если они с 5070 Ti будут жарить друг друга, троттлинг обеспечен.
2 Драйверы и проверка
Установи единый драйвер NVIDIA (Game Ready или Studio). Открой терминал и выполни:
nvidia-smi
Ты должен увидеть обе карты в списке. Если видна только основная — проверь слот, питание, перезагрузи BIOS (может, стоит включить «Resizable BAR»). Если карта не определяется — возможно, она сдохла или несовместима с новым драйвером (RTX 2060 сейчас без проблем, а вот карты на Pascal могут потребовать отката драйвера).
3 Скачиваем модель в GGUF
Выбираем 30B-модель, которая поместится в 22 ГБ. Лучшие кандидаты на апрель 2026:
| Модель | Параметры | VRAM (Q4_K_M) | Примечание |
|---|---|---|---|
| Qwen 2.5 32B | 32B | ~18 ГБ | Лучшая универсальная модель |
| Gemma 2 27B | 27B | ~15 ГБ | Отлично для английского, хуже с русским |
| Llama 3.2 30B (экспериментальная) | 30B | ~17 ГБ | Неофициальная сборка, качество сырое |
Я рекомендую Qwen 2.5 32B Q4_K_M — она влезает с запасом, умна, и её квант хорошо проработан. Скачивай с Hugging Face или через huggingface-cli.
4 Запуск с tensor-split — кульминация
Теперь самое интересное. Открывай терминал и пиши:
./llama-cli \
--model /path/to/model/qwen2.5-32b-q4_k_m.gguf \
--tensor-split 16,6 \
--n-gpu-layers 100 \
--ctx-size 4096 \
--temp 0.7 \
--prompt "Расскажи, как объединить две видеокарты для LLM"
Параметр --tensor-split 16,6 говорит: первая карта (ID 0) получит ~16 ГБ нагрузки, вторая (ID 1) — ~6 ГБ. Можно указать больше, если вторая карта имеет больше памяти. Если не уверены, сколько реально свободно — поставьте завышенные числа, движок сам скорректирует.
Флаг --n-gpu-layers 100 означает «загружай все слои на GPU» (если модель имеет 80 слоёв, 100 — просто максимум). Без этого флага часть слоёв может уйти на CPU, и скорость упадёт до 1 токена/с.
5 Мониторинг и оптимизация
Запусти в соседнем окне watch -n 1 nvidia-smi и смотри заполнение памяти. Если вторая карта забита под завязку, а на первой остаётся 2–3 ГБ — можно перераспределить нагрузку, уменьшив --tensor-split для второй (например, 14,8).
Скорость генерации будет ниже, чем на одной карте с 24 ГБ. В моём тесте: RTX 5070 Ti + RTX 2060 — ~6 токенов/с для Qwen 32B. Это в 2 раза медленнее, чем RTX 4090, но модель работает. Если вас такая скорость не устраивает — читайте, как разогнать гигантские LLM, там описаны техники для мощных сборок.
Типовые ошибки (и как их избежать)
Ошибка 1: CUDA error: out of memory
Значит, модель всё ещё не влезает. Проверь, что обе карты видны в nvidia-smi. Попробуй запустить с --tensor-split 12,4 — меньшие цифры = меньше нагрузки на каждую, но больше шанс, что влезет. Если не помогло — бери модель в квантовании Q3_K_M (занимает ~14 ГБ для 30B), но качество упадёт.
Ошибка 2: очень медленно (1–2 токена/с)
Причины: слабая вторая карта (GTX 1060 3 ГБ — песня?), или малая пропускная способность PCIe (слот x4). Попробуй переставить карту в слот x16, если есть свободный. Либо убери часть слоёв на CPU через --n-gpu-layers 50 (оставив половину на CPU) — скорость может вырасти, потому что CPU+GPU иногда быстрее, чем GPU+слабый GPU.
Ошибка 3: модель генерирует белиберду
Скорее всего, проблемы с квантованием или слишком низкая температура. Проверь целостность скачанного GGUF (сравни хэш). Или попробуй другую модель из списка самых умных LLM для 24 ГБ — они пройдут и на 22 ГБ.
Стоит ли овчинка выделки?
Если у тебя уже есть старая карта — это лайфхак за 0 рублей. Если покупать RTX 2060 б/у за 8–10 тысяч — тоже вариант: ты получаешь +6 ГБ VRAM за цену обеда в ресторане. Но не жди чудес. Скорость упадёт, тепловыделение вырастет, и играть во время инференса не получится.
Я бы сказал так: если тебе нужно один раз сгенерировать статью, код или перевод — связка спасёт. Если ты планируешь писать роман токен за токеном — лучше копить на 24 ГБ карту.
И главный совет, который редко дают: не гонись за точным Q4_K_M. Попробуй Q4_K_S — он почти не теряет качество, но экономит 1–2 ГБ, которые могут стать решающими. Либо используй --tensor-split с небольшим запасом (15,5) — пусть часть слоёв уйдёт на CPU, это не так страшно.
Multi-GPU для локальных LLM — это не свалка старого хлама, а легаси-интеграция. Умейте её готовить.