В пучине выбора: почему я остановился на 2× V100 32GB
Два года назад, когда я только начинал копать в сторону локального AI, передо мной стоял классический выбор: взять одну RTX 4090 за 180 тысяч (тогда) или попробовать что-то более... интересное. RTX 3090 была дешевле, но 24 ГБ — это всегда компромисс для 70B моделей. Mac Studio с 128 ГБ unified memory — идеально, но бюджет выходит за 400 тысяч. А хотелось и 70B запускать, и бюджет не превышать 200 тысяч.
И тут я вспомнил про Tesla V100. Серверный монстр, который в 2026 году на вторичке стоит смешных денег. Две карты по 32 ГБ HBM2 за 100 тысяч? Дайте две! Но дьявол, как всегда, в деталях. V100 не дружит с PCIe risers, любит серверные материнки и странно ведёт себя с обычными блоками питания.
Я решил рискнуть и собрать system на двух V100 32GB (они же V100 SXM2 в формате PCIe-адаптера) — купил плату X99 с двумя сокетами, пару Xeon E5-2690 v4, 128 ГБ DDR4 REG ECC, два блока питания Corsair RM1000x и чёрный шкаф с насильственной вентиляцией. Итоговая цена вышла около 200 000 рублей — да, в 2026 это всё ещё бюджетно, если сравнивать с облачной арендой за год.
Почему именно 2× V100, а не 1× 4090 или Mac Studio?
Раскладываю по полочкам.
- RTX 4090 (24 ГБ) — великолепная карта для игр, но для 70B моделей там всего 16 ГБ после загрузки квантизации Q4_K_M. 70B просто не влезает. На двух 4090 в NVLink — да, но две 4090 стоят под 300 тысяч, а ещё нужна материнка с двумя PCIe x16 слотами с нормальным расстоянием.
- Mac Studio M2 Ultra (192 ГБ) — сказка, деньги 600 тысяч. Не наш путь.
- Одна V100 32 ГБ — отличный старт, но многие 30B модели требуют 20+ ГБ, а 70B влезет только Q2_K. С одной картой вы застряёте на 13B–30B моделях.
- Две V100 32 ГБ — суммарно 64 ГБ VRAM. В связке через tensor parallelism (TP=2) можно запускать 70B модель с квантизацией Q4_K_M (занимает ~40 ГБ), оставляя место под контекст в 32k токенов. А 30B модели вообще летают.
Главный недостаток? Пропускная способность памяти 900 ГБ/с на карту против 1.8 ТБ/с у RTX 4090. Но в реальности для инференса LLM с высоким batch size разница не так критична (см. бенчмарки ниже).
Комплектующие: что и где брать, чтобы не прогадать
Собираем список.
| Компонент | Модель | Цена (руб.) | Комментарий |
|---|---|---|---|
| GPU | 2× Tesla V100 32GB (PCIe) | ~100 000 | Б/у на авито или Overclockers. Не берите SXM2 — только PCIe с адаптером питания. |
| Материнка | ASUS Z10PE-D8 WS или Supermicro X10DAi | ~12 000 | Dual LGA 2011-3, обязателен чипсет C612. |
| CPU | 2× Intel Xeon E5-2690 v4 (14 ядер, 2.6 ГГц) | ~8 000 | Подойдёт любой v4, но для tensor parallelism важны AVX2 и частота. |
| RAM | 128 ГБ DDR4 ECC REG (8×16 ГБ, 2400 МГц) | ~12 000 | Используйте одну и ту же версию, иначе не заведётся. |
| SSD | NVMe 2 ТБ (Samsung 990 Pro) | ~12 000 | Для моделей и контекста. |
| Блок питания | 2× Corsair RM1000x (или 1× 2000W) | ~16 000 | Почему два — потому что V100 жрут по 300 Вт под нагрузкой, а дешёвые 1500W блока гудят и греются. |
| Корпус | Thermaltake Core W200 (или любой Full Tower с 5 вентиляторами) | ~20 000 | Главное — продуваемость и места для карт. V100 PCIe — двухслотовые, пассивные. |
| Охлаждение | 6× Noctua NF-P12 (1200 об/мин) + 2× на выдув | ~8 000 | Установите два вентилятора прямо на спину V100 — это снизит температуру на 20°C. |
| Прочее | PCIe адаптеры, кабели, термопаста | ~5 000 | Могут потребоваться райзеры PCIe x16 — но лучше ставить прямо в материнку. |
Итого: ≈ 197 000 рублей. Да, вы не ошиблись. В 2026 году две карты с 64 ГБ HBM2 обходятся как одна RTX 4080. Но нюансы, нюансы...
⚠️ Предупреждение: Не пытайтесь воткнуть V100 в обычный игровой ПК на Z790. Карта требует UEFI с поддержкой GOP (или legacy BIOS с CSM) и может не загружаться с современной материнкой без headless-режима. Лучше всего — X99 или X299 с Dual CPU.
Сборка: от коробок до первого вывода Hello World
Я подробно опишу процесс, который повторял три раза, пока не добился стабильной работы.
1Установка процессоров и памяти
Ставьте на X99 два Xeon. Не забудьте про термопасту на кулеры (подойдут даже боксовые, но лучше Supermicro SNK-P0048P — они дешёвые и тихие). Слоты памяти заполняйте строго по инструкции: для 8 планок — 1A/2A/1B/2B/3A/4A/3B/4B. Иначе система не стартует.
2Установка видеокарт
Здесь самое интересное. V100 PCIe имеют пассивный радиатор и требуют мощного продува. Я не советую ставить их в соседние слоты — между ними должно быть хотя бы 2 слота пустых, иначе перегрев обеспечен. У меня была конфигурация: слоты 1, 4 и 7 (через один). Карты не греются выше 70°C при нагрузке.
Питание: V100 потребляет 250–300 Вт. Используйте два отдельных кабеля 8-pin на каждую карту от разных блоков. Я соединил два Corsair RM1000x последовательно (джампер между PS_ON). Есть готовые модули синхронизации, но я просто замкнул зелёный провод на землю на втором БП — работает.
3Настройка BIOS
Войдите в BIOS на материнке X10DAi. Обязательно включите 4G Decoding и Resizable BAR (если есть). Отключите всё, что не нужно: COM-порты, аудио, лишние SATA. Выставьте режим работы PCIe как Gen3 (не Gen4 — карта же PCIe 3.0).
Программная часть: Ubuntu + CUDA + Ollama + vLLM
Ставим Ubuntu Server 24.04 LTS (26.04 ещё не вышла, как по мне, 24.04 самая стабильная). Драйверы — свежий драйвер NVIDIA 550 (начиная с версии 545 поддержка V100 официальная). CUDA 12.4 — только её.
Дальше ставлю Docker (sudo apt install docker.io docker-compose-v2) и в контейнере разворачиваю Ollama + vLLM. Это стандартный стек для инференса LLM, о котором я писал ранее. Для TP=2 vLLM пришлось собирать из исходников с флагом -DVLLM_TP_SIZE=2. Ollama тоже отлично работает с двумя GPU — просто добавьте в переменные окружения OLLAMA_NUM_PARALLEL=2.
Бенчмарки: как я прогнал 108 моделей и не сошёл с ума
Я написал скрипт на Python, который последовательно загружает модели из библиотеки Ollama (через SDK) или vLLM (через API). Тестировал только модели с открытым весом: Llama 3, Mistral, Qwen, Gemma, DeepSeek и т.д. Для каждой модели измерял: время загрузки, использование VRAM, скорость генерации (tokens/s) для запроса длиной 512 токенов. Все тесты на TP=2.
Выборка из лучших результатов (полную таблицу в 108 строк не леплю — покажу сигнатуры).
| Модель (квант) | Размер (ГБ) | tokens/s | VRAM (ГБ) | Примечание |
|---|---|---|---|---|
| Qwen2.5-72B-Instruct (Q3_K_M) | 29.5 | 7.2 | 56 | Идеально для медленного, но детального ответа |
| Llama-3-70B-Instruct (Q2_K) | 28.1 | 9.1 | 54 | QP=2 даёт заметную потерю качества, но скорость выше |
| Mistral-Large-123B (Q2_K) | 52.0 | 4.3 | 62 | Не влезает без TP=2, на одной карте — только Q1 |
| DeepSeek-R1-Distill-70B (Q4_K_M) | 40.0 | 5.5 | 60 | Лучший компромисс качество/скорость |
| Gemma-2-27B (Q4_K_M) | 16.5 | 18.2 | 32 | Летает, почти как на 4090 |
| Qwen3.4-14B (Q8) | 14.5 | 28.0 | 32 | Быстрее не бывает — упирается в PCIe 3.0 x16 |
Как видите, 70B модели на Q4_K_M работают с приемлемой скоростью — 5–7 токенов/с. Этого хватает для чата в реальном времени, но для ботов с high QPS придётся танцевать с бубном (пишите в комментах, сделаю отдельную статью про engineering).
Грабли, на которые я наступил, и как вылез
1. Материнка не видит вторую карту. Решение: обновить BIOS до последней версии (на X10DAi — 3.2b). После обновления включить Above 4G Decoding и выставить PCIe Slot Configuration: Auto.
2. Перегрев V100 под нагрузкой. Пассивная система охлаждения V100 PCIe рассчитана на серверный корпус с мощными вентиляторами (8000 об/мин). В обычном корпусе карта греется до 85°C и начинает троттлинг. Я прикрутил к радиатору два Noctua NF-P12 с помощью пластиковых стяжек — температура упала до 65°C. Да, не эстетично, но работает.
3. Драйверы не определяют обе карты при старте. Оказалось, что вторая карта цепляется к второму CPU, и для неё нужен драйвер с поддержкой NUMA. Решение: установить драйвер с параметром --no-opengl-files и прописать в /etc/modprobe.d/nvidia.conf опцию NVreg_EnablePCIeGen3=1.
4. Блоки питания перегружаются. Один RM1000x не тянет две V100 + два Xeon (суммарно ~800 Вт). Я купил второй такой же и использовал модуль синхронизации Add2PSU (или просто замкнул провода). Только не забудьте, что оба БП должны быть от одного производителя — иначе будете искать дым.
5. Свист дросселей под нагрузкой. Это норма для серверных карт в бытовом корпусе. Можно смягчить, наклеив на дроссели каптоновую ленту, но я забил — в соседней комнате не слышно.
Стоит ли овчинка выделки? Сравнение с облаком
Посчитаем. Облачный GPU: аренда A100 80 ГБ (типа RunPod) — $1.2/час. 200 часов в месяц = $240. Год = $2880 ≈ 230 000 рублей. Наша сборка за 200 000 рублей окупается через 10–11 месяцев. А если у вас ещё и второй человек юзает в паре — делим пополам, и окупаемость за 5 месяцев. Плюс полный контроль и отсутствие лимитов на провайдера. Я считаю, малые команды и энтузиасты вполне могут взять такой путь коллаборации, как мы описывали для Blackwell, но с меньшим бюджетом.
Минусы? Гул вентиляторов (около 45 дБ под нагрузкой), потребление под 800 Вт (в месяц за электричество выходит ~8 000 рублей). Но если вы не хостите открытый API, а делаете исследования для себя — это оправдано.
Что дальше? Upgrade path
Через год, когда цены на V100 ещё упадут, можно докупить третью карту (тогда TP=3) и запускать 123B модели. А можно продать V100 и купить одну RTX 6090 с 48 ГБ — но это уже другая история, и я обязательно напишу её, если тема окажется вам интересна.
Подпишитесь на канал, чтобы не пропустить. А пока — собирайте свой дешёвый AI-сервер и пишите вопросы в комментарии. Я отвечаю.