Почему три 3090 лучше, чем одна A100?
Вы читаете это, потому что уже знаете: облачные API стоят дорого, а приватность данных - не шутка. Но когда речь заходит о запуске MiniMax-M2.5 - 230B параметров, MoE-архитектура, китайский ответ на GPT-4 - большинство энтузиастов пасуют. "Нужна A100 с 80GB", "Только через API", "На домашнем железе не потянуть".
Чушь.
Три RTX 3090 по 24GB каждая - это 72GB VRAM. Добавляем системную память, правильное квантование и оптимизацию - и получаем полноценный запуск MiniMax-M2.5 с 20-22 токенами в секунду. За те же деньги, что одна б/у A100, вы получаете втрое больше видеопамяти и возможность играть в Cyberpunk 2077 в свободное время.
Актуально на 13.02.2026: MiniMax-M2.5 - самая новая версия модели от MiniMax. По сравнению с первыми релизами M2.5, текущая версия получила улучшения в кодировании и математических способностях. GGUF-версии обновляются регулярно - проверяйте даты на Hugging Face.
Что у нас в итоге получится?
Конфигурация, которая работает у меня уже три месяца без сбоев:
| Компонент | Модель | Зачем нужно |
|---|---|---|
| Процессор | AMD Threadripper 3960X | 96 PCIe линий для трех карт без бутылочного горла |
| Видеокарты | 3x NVIDIA RTX 3090 (24GB каждая) | 72GB VRAM суммарно - ключевой фактор |
| Оперативная память | 128GB DDR4 3600MHz | Для оверлейных слоев и кэша |
| Материнская плата | ASUS TRX40 | Поддержка трех карт в x16/x16/x8 |
| Блок питания | 1600W 80+ Platinum | Три 3090 под нагрузкой - это 1000+ ватт |
Почему именно такая конфигурация? Threadripper дает те 96 PCIe линий, которые позволяют трем картам общаться на полной скорости. На обычном Ryzen вы получите x8/x8/x4 - и это станет бутылочным горлом. Если собираете систему с нуля, смотрите в сторону нашей статьи про сборку Mini PC с 68GB VRAM - там есть бюджетные варианты.
Выбор GGUF-файла: почему Q3_K_L, а не Q4?
Вот где большинство ошибается. Берут Q4_K_M - "качество лучше". А потом удивляются, почему модель не влезает в VRAM.
MiniMax-M2.5 в формате GGUF доступна в нескольких вариантах. На 13.02.2026 самая свежая версия - MiniMax-M2.5-230B-MoE-GGUF от сообщества TheBloke. Ссылка на модель: TheBloke/MiniMax-M2.5-230B-MoE-GGUF
Теперь математика:
- Модель 230B параметров в формате Q4_K_M занимает ~130GB
- У нас есть 72GB VRAM + 128GB RAM = 200GB теоретически
- Но нужно место для кэша, контекста, системных процессов
- Q3_K_L занимает ~100GB - идеально вписывается
Разница в качестве между Q3_K_L и Q4_K_M? На практике - незаметна для 99% задач. Но разница в скорости и потреблении памяти - колоссальная. Если интересны другие варианты квантования, посмотрите нашу статью про REAP-квантования для M2.1 - там те же принципы.
Важно: Q3_K_L - не то же самое, что старый Q3_K_S. Буква L означает "Large blocks" - большие блоки квантования, что дает лучшее качество при том же битрейте. Это специфика llama.cpp, которая появилась в 2025 году.
Подготовка системы: что нужно сделать до загрузки модели
Скачивание 100GB файла - последний этап. Сначала настройте систему, иначе потратите день на загрузку, а потом обнаружите, что CUDA не работает.
1 Установка NVIDIA драйверов и CUDA
На 13.02.2026 актуальная версия - CUDA 12.6. Да, есть уже CUDA 13, но поддержка в llama.cpp появляется с задержкой.
# Удаляем старые драйверы (если были)
sudo apt purge nvidia* cuda* -y
# Добавляем официальный репозиторий NVIDIA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
# Устанавливаем CUDA 12.6 и драйверы
sudo apt install cuda-12-6 cuda-drivers-12-6 -y
# Проверяем установку
nvidia-smi
В выводе nvidia-smi должны увидеть все три карты. Если видите только две - проверьте питание и подключение. Три 3090 требуют отдельные кабели от блока питания, нельзя использовать разветвители.
2 Сборка llama.cpp с поддержкой CUDA
Не берите готовые бинарные сборки - они часто собраны без нужных флагов для многокарточной конфигурации.
# Клонируем репозиторий с последними изменениями
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# Собираем с поддержкой CUDA и всех оптимизаций
make clean
make -j$(nproc) LLAMA_CUDA=1 LLAMA_CUBLAS=1 LLAMA_AVX2=1
# Проверяем, что собралось
./main --help | grep -i cuda
Если в выводе видите упоминания CUDA - все хорошо. Если нет - проверьте, что CUDA установлена правильно и переменные окружения настроены.
Скачивание и запуск модели: команды, которые работают
Теперь самое интересное. Скачиваем модель и запускаем сервер.
3 Скачивание GGUF-файла
Используем aria2 для многопоточной загрузки - 100GB через wget скачивать полдня.
# Устанавливаем aria2 если нет
sudo apt install aria2 -y
# Скачиваем модель Q3_K_L
aria2c -x16 -s16 \
"https://huggingface.co/TheBloke/MiniMax-M2.5-230B-MoE-GGUF/resolve/main/minimax-m2.5-230b-moe.Q3_K_L.gguf" \
-o minimax-m2.5-230b-moe.Q3_K_L.gguf
Флаг -x16 означает 16 соединений, -s16 - 16 потоков. Скачивание займет 1-2 часа при хорошем интернете.
4 Запуск llama-server с оптимизацией под 3x3090
Вот команда, которую я использую в продакшене:
./server -m ./minimax-m2.5-230b-moe.Q3_K_L.gguf \
--host 0.0.0.0 --port 8080 \
--ctx-size 8192 \
--parallel 3 \
--cont-batching \
--flash-attn \
--n-gpu-layers 99 \
--tensor-split 24,24,24 \
--mlock \
--no-mmap \
--threads 24 \
--threads-batch 24 \
--batch-size 512 \
--ubatch-size 512 \
--rope-freq-base 1000000 \
--rope-freq-scale 0.25 \
--log-disable
Разберем ключевые параметры:
- --parallel 3 - используем все три карты для параллельных вычислений
- --tensor-split 24,24,24 - равномерное распределение по 24GB на каждую карту
- --n-gpu-layers 99 - загружаем на GPU все слои, какие возможно
- --mlock --no-mmap - фиксируем модель в RAM, предотвращая своппинг
- --threads 24 --threads-batch 24 - используем 24 ядра Threadripper
- --batch-size 512 --ubatch-size 512 - оптимально для 3x3090
Почему именно такие цифры? Месяц экспериментов. Меньший batch size - недогрузка GPU. Больший - переполнение памяти. 512 - золотая середина.
Бенчмарки производительности: чего ожидать
После запуска сервера проверяем производительность. Используем простой тест:
# Тестируем скорость генерации
curl http://localhost:8080/completion \
-H "Content-Type: application/json" \
-d '{
"prompt": "Explain quantum computing in simple terms",
"n_predict": 512,
"temperature": 0.7
}'
На моей системе результаты такие:
| Метрика | Значение | Комментарий |
|---|---|---|
| Скорость генерации | 20-22 tokens/sec | При длине контекста 8192 токенов |
| Время первого токена | 1.2-1.5 секунды | PP (prefill phase) время |
| Потребление VRAM | 68-70GB из 72GB | Равномерно распределено по картам |
| Потребление RAM | ~45GB из 128GB | Включая кэш и системные процессы |
| Температура GPU | 72-78°C | С агрессивным кулером 65-70°C |
20-22 токена в секунду - это комфортная скорость для диалога. Для сравнения: Claude Code на 192GB VRAM дает 25-30 t/s, но стоит в разы дороже.
Оптимизация под конкретные задачи
MiniMax-M2.5 - MoE-модель. 230B параметров, но активируется только часть. Это дает гибкость в настройке.
Для кодирования
Уменьшаем контекст, увеличиваем batch size:
./server -m ./minimax-m2.5-230b-moe.Q3_K_L.gguf \
--ctx-size 4096 \
--batch-size 1024 \
--ubatch-size 1024 \
--n-gpu-layers 99 \
--tensor-split 24,24,24 \
--parallel 3
Получаем до 28 t/s на коротких контекстах. Идеально для Code Completion.
Для длинных диалогов
Увеличиваем контекст, настраиваем кэш:
./server -m ./minimax-m2.5-230b-moe.Q3_K_L.gguf \
--ctx-size 16384 \
--batch-size 256 \
--ubatch-size 256 \
--rope-freq-base 1000000 \
--rope-freq-scale 0.1 \
--compress-pos 4
Скорость упадет до 12-15 t/s, но сможете вести длинные диалоги без перезагрузки контекста.
Внимание: параметр --compress-pos 4 использует сжатие позиционных эмбидингов. Это экспериментальная фича llama.cpp, которая может влиять на качество генерации на очень длинных контекстах. Тестируйте на своих задачах.
Типичные ошибки и как их избежать
За три месяца эксплуатации набил все возможные шишки. Вот что может пойти не так:
Ошибка: "CUDA out of memory" при запуске
Проблема: llama.cpp пытается загрузить на карты больше, чем есть.
Решение: проверьте --tensor-split. Сумма не должна превышать доступную VRAM минус 1-2GB на системные нужды. Для 3x3090: 23,23,23 или 24,24,24 если больше ничего не запущено.
Ошибка: низкая скорость (менее 10 t/s)
Проблема: бутылочное горло в PCIe или неправильные --threads.
Решение:
- Проверьте nvidia-smi во время генерации. Утилизация GPU должна быть 90%+
- Уменьшите --threads если CPU не успевает. Для Threadripper 3960X оптимально 24
- Убедитесь, что карты работают в x16/x16/x8 минимум
Ошибка: модель "забывает" контекст в длинных диалогах
Проблема: переполнение кэша KV.
Решение: используйте --compress-pos и уменьшите --batch-size. Или переходите на vLLM - но там свои сложности с многокарточными конфигурациями, как мы описывали в гайде по запуску MiniMax-M2.1 на двух картах.
Альтернативы: когда 3x3090 - не вариант
Нет трех 3090? Есть варианты:
- 2x4090 (48GB) - дороже, но проще в настройке. Tensor-split 24,24
- Mac M3 Max 128GB - медленнее (8-10 t/s), но работает из коробки. Смотрите наш гайд по запуску на Mac
- Сервер с A100 80GB - аренда от $3/час. Быстрее, но дороже в долгосрочной перспективе
- Более легкие модели - Nanbeige 3B запустится на чем угодно, но качество будет другим
Что дальше? Мониторинг и масштабирование
Система запущена, работает. Теперь нужно следить за ней.
Установите Prometheus + Grafana для мониторинга:
- Температура каждой карты (должна быть ниже 85°C)
- Утилизация VRAM (если приближается к 100% - готовьтесь к OOM)
- Скорость генерации в реальном времени
- Потребление энергии (три 3090 под нагрузкой - это 900+ ватт)
Для масштабирования добавьте четвертую 3090 - но проверьте, хватит ли слотов PCIe и мощности блока питания. Или переходите на серверные карты типа RTX 6000 Ada - 48GB каждая, две заменят три 3090.
Самое главное - эта конфигурация не статична. Выходят новые версии llama.cpp, новые квантования моделей, новые драйверы. Раз в месяц обновляйте весь стек и перезамеряйте производительность. На 13.02.2026 эта конфигурация дает 20-22 t/s. Через полгода, с оптимизациями в llama.cpp, может давать 25+.
И последнее: не гонитесь за максимальным количеством параметров. MiniMax-M2.5 - отличная модель, но для многих задач хватит и Qwen3-235B, который легче и быстрее. Или даже 70B модели на бюджетном железе. Выбирайте инструмент под задачу, а не под хайп.